python實現(xiàn)任意位置文件分割的實例
應(yīng)用場景
在嵌入式開發(fā)中,常常需要將一個binary文件分割成多個文件,或者將一個binary的某塊區(qū)域抓成一個單獨文件。本篇blog以python為例,實現(xiàn)了以上需求;
實現(xiàn)代碼
#!/usr/bin/python
"""
./file_split.py, just for testing;
"""
import sys
import os
import re
from os.path import join
from array import array
import datetime
ORIGINAL_BIN = 'test.bin'
SPLIT_BIN1 = 'output/1.bin'
SPLIT_BIN2 = 'output/2.bin'
SPLIT_BIN3 = 'output/3.bin'
def main(argv):
print "time:",datetime.datetime.now()
print "Platform:",os.name
if (os.path.exists('output') == False):
os.mkdir('output')
originalBin = open(ORIGINAL_BIN,'rb').read()
originalBin = array('c', originalBin)
bin1 = originalBin[0x0:0x4000]
open(SPLIT_BIN1,'wb+').write(bin1)
bin2 = originalBin[0x130000:0x130000+0x2000]
open(SPLIT_BIN2,'wb+').write(bin2)
bin3 = originalBin[0x160000:0x160000+0x2000]
open(SPLIT_BIN3,'wb+').write(bin3)
return 0
if __name__ == '__main__':
main(sys.argv)
代碼解析
if (os.path.exists('output') == False):
os.mkdir('output')
檢查當(dāng)前目錄是否存在output目錄,如果沒有就創(chuàng)建output目錄, 文件分割后的bin就存放在output目錄;
originalBin = open(ORIGINAL_BIN,'rb').read()
originalBin = array('c', originalBin)
調(diào)用open打開ORIGINAL_BIN路徑的文件,并且讀到originalBin這個變量中;將originalBin中的數(shù)據(jù)轉(zhuǎn)化成array,并且數(shù)組單個元素為character單字節(jié);
bin1 = originalBin[0x0:0x4000] open(SPLIT_BIN1,'wb+').write(bin1)
將originalBin數(shù)組中的0x0到0x4000地址的數(shù)據(jù)初始化給bin1;然后創(chuàng)建SPLIT_BIN1路徑的文件,將bin1寫入該文件;bin2和bin3同理。
以上這篇python實現(xiàn)任意位置文件分割的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python編寫一個驗證碼圖片數(shù)據(jù)標(biāo)注GUI程序附源碼
這篇文章主要介紹了Python編寫一個驗證碼圖片數(shù)據(jù)標(biāo)注GUI程序,本文給大家附上小編精心整理的源碼,需要的朋友可以參考下2019-12-12
pandas 相關(guān)性和正態(tài)性分析的實踐
當(dāng)我們談?wù)撜龖B(tài)性(Normality)和相關(guān)性(Correlation)時,我們實際上在嘗試?yán)斫鈹?shù)據(jù)的分布模式和不同變量之間的關(guān)系,本文就來介紹一下pandas 相關(guān)性和正態(tài)性的實踐,感興趣的可以了解一下2024-07-07
python opencv實現(xiàn)切變換 不裁減圖片
這篇文章主要為大家詳細(xì)介紹了python opencv實現(xiàn)切變換,不裁減圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-07-07
Python基于pycrypto實現(xiàn)的AES加密和解密算法示例
這篇文章主要介紹了Python基于pycrypto實現(xiàn)的AES加密和解密算法,結(jié)合實例形式分析了Python使用pycrypto模塊進行AES加密與解密操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-04-04
詳解Django中的ifequal和ifnotequal標(biāo)簽使用
這篇文章主要介紹了詳解Django中的ifequal和ifnotequal標(biāo)簽使用,Django是重多高人氣Python框架中最為著名的一個,需要的朋友可以參考下2015-07-07
Python實現(xiàn)生成多種有規(guī)律的數(shù)字序列
在?Python?編程中,生成數(shù)字序列是一項常見且重要的任務(wù),本文將深入探討如何使用Python中的內(nèi)置函數(shù)、列表推導(dǎo)式、生成器等方式來生成多種有規(guī)律的數(shù)字序列,需要的可以參考下2024-03-03

