python实现任意位置文件分割的实例


Posted in Python onDecember 14, 2018

应用场景

在嵌入式开发中,常常需要将一个binary文件分割成多个文件,或者将一个binary的某块区域抓成一个单独文件。本篇blog以python为例,实现了以上需求;

实现代码

#!/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')

检查当前目录是否存在output目录,如果没有就创建output目录, 文件分割后的bin就存放在output目录;

originalBin = open(ORIGINAL_BIN,'rb').read()
originalBin = array('c', originalBin)

调用open打开ORIGINAL_BIN路径的文件,并且读到originalBin这个变量中;将originalBin中的数据转化成array,并且数组单个元素为character单字节;

bin1 = originalBin[0x0:0x4000]
open(SPLIT_BIN1,'wb+').write(bin1)

将originalBin数组中的0x0到0x4000地址的数据初始化给bin1;然后创建SPLIT_BIN1路径的文件,将bin1写入该文件;bin2和bin3同理。

以上这篇python实现任意位置文件分割的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python字符串逐字符或逐词反转方法
May 21 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
Python 中的 else详解
Apr 23 Python
利用Anaconda简单安装scrapy框架的方法
Jun 13 Python
python监控文件并且发送告警邮件
Jun 21 Python
Python3实现转换Image图片格式
Jun 21 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
如何在Python中实现goto语句的方法
May 18 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
详解pycharm2020.1.1专业版安装指南(推荐)
Aug 07 Python
pytorch permute维度转换方法
Dec 14 #Python
Python语言快速上手学习方法
Dec 14 #Python
分享Python切分字符串的一个不错方法
Dec 14 #Python
在python中按照特定顺序访问字典的方法详解
Dec 14 #Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
Dec 14 #Python
python列表list保留顺序去重的实例
Dec 14 #Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
Dec 14 #Python
You might like
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
php数组合并的二种方法
2014/03/21 PHP
PHP的Socket网络编程入门指引
2015/08/11 PHP
php常量详细解析
2015/10/27 PHP
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
javascript中的隐式调用
2018/02/10 Javascript
解决vue语法会有延迟加载显现{{xxx}}的问题
2019/11/14 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
Python 功能和特点(新手必学)
2015/12/30 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python用户管理系统
2018/03/13 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
Python实现异步IO的示例
2020/11/05 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
python中xlrd模块的使用详解
2021/02/01 Python
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
毕业生个人的自我评价优秀范文
2013/10/03 职场文书
会议开场欢迎词
2014/01/15 职场文书
银行招聘自荐信
2015/03/06 职场文书
谢师宴家长致辞
2015/07/27 职场文书
就业指导讲座心得体会
2016/01/15 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
如何在Python中创建二叉树
2021/03/30 Python
使用HttpSessionListener监听器实战
2022/03/17 Java/Android