python實(shí)現(xiàn)任意位置文件分割的實(shí)例
應(yīng)用場(chǎng)景
在嵌入式開發(fā)中,常常需要將一個(gè)binary文件分割成多個(gè)文件,或者將一個(gè)binary的某塊區(qū)域抓成一個(gè)單獨(dú)文件。本篇blog以python為例,實(shí)現(xiàn)了以上需求;
實(shí)現(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這個(gè)變量中;將originalBin中的數(shù)據(jù)轉(zhuǎn)化成array,并且數(shù)組單個(gè)元素為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實(shí)現(xiàn)任意位置文件分割的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python實(shí)現(xiàn)將文件夾內(nèi)的每張圖片批量分割成多張
- Python中使用pypdf2合并、分割、加密pdf文件的代碼詳解
- Python分割指定頁(yè)數(shù)的pdf文件方法
- Python實(shí)現(xiàn)模擬分割大文件及多線程處理的方法
- Python 逐行分割大txt文件的方法
- python與php實(shí)現(xiàn)分割文件代碼
- python簡(jiǎn)單分割文件的方法
- Python實(shí)現(xiàn)分割文件及合并文件的方法
- python分割文件的常用方法
- 用python分割TXT文件成4K的TXT文件
- python分割一個(gè)文本為多個(gè)文本的方法
- python實(shí)現(xiàn)大文本文件分割
相關(guān)文章
Python編寫一個(gè)驗(yàn)證碼圖片數(shù)據(jù)標(biāo)注GUI程序附源碼
這篇文章主要介紹了Python編寫一個(gè)驗(yàn)證碼圖片數(shù)據(jù)標(biāo)注GUI程序,本文給大家附上小編精心整理的源碼,需要的朋友可以參考下2019-12-12
Python使用ClickHouse的實(shí)踐與踩坑記錄
這篇文章主要介紹了Python使用ClickHouse的實(shí)踐與踩坑記錄,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05
pandas 相關(guān)性和正態(tài)性分析的實(shí)踐
當(dāng)我們談?wù)撜龖B(tài)性(Normality)和相關(guān)性(Correlation)時(shí),我們實(shí)際上在嘗試?yán)斫鈹?shù)據(jù)的分布模式和不同變量之間的關(guān)系,本文就來介紹一下pandas 相關(guān)性和正態(tài)性的實(shí)踐,感興趣的可以了解一下2024-07-07
python opencv實(shí)現(xiàn)切變換 不裁減圖片
這篇文章主要為大家詳細(xì)介紹了python opencv實(shí)現(xiàn)切變換,不裁減圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法示例
這篇文章主要介紹了Python基于pycrypto實(shí)現(xiàn)的AES加密和解密算法,結(jié)合實(shí)例形式分析了Python使用pycrypto模塊進(jìn)行AES加密與解密操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-04-04
對(duì)Python中GIL(全局解釋器鎖)的一點(diǎn)理解淺析
首先需要明確的一點(diǎn)是GIL并不是Python的特性,它是在實(shí)現(xiàn)Python解析器(CPython)時(shí)所引入的一個(gè)概念,下面這篇文章主要給大家介紹了關(guān)于對(duì)Python中GIL的一點(diǎn)理解,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
詳解Django中的ifequal和ifnotequal標(biāo)簽使用
這篇文章主要介紹了詳解Django中的ifequal和ifnotequal標(biāo)簽使用,Django是重多高人氣Python框架中最為著名的一個(gè),需要的朋友可以參考下2015-07-07
Python實(shí)現(xiàn)生成多種有規(guī)律的數(shù)字序列
在?Python?編程中,生成數(shù)字序列是一項(xiàng)常見且重要的任務(wù),本文將深入探討如何使用Python中的內(nèi)置函數(shù)、列表推導(dǎo)式、生成器等方式來生成多種有規(guī)律的數(shù)字序列,需要的可以參考下2024-03-03

