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 Property属性的2种用法
Jun 21 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
python中如何使用正则表达式的非贪婪模式示例
Oct 09 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
python实现随机梯度下降(SGD)
Mar 24 Python
python Web开发你要理解的WSGI & uwsgi详解
Aug 01 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
Nov 06 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
python 获取计算机的网卡信息
Feb 18 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
批量获取memcache值并按key的顺序返回的实现代码
2011/06/14 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
PHP实现财务审核通过后返现金额到客户的功能
2019/07/04 PHP
PHP7 新增常量
2021/03/09 PHP
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
JavaScript框架(iframe)操作总结
2014/04/16 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
JavaScript实现in-place思想的快速排序方法
2016/08/07 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
js读取本地文件的实例
2017/12/22 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
vue通过过滤器实现数据格式化
2020/07/20 Javascript
python中的yield使用方法
2014/02/11 Python
深入理解Python中字典的键的使用
2015/08/19 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
aec加密 php_php aes加密解密类(兼容php5、php7)
2021/03/14 PHP
新西兰优惠网站:Treat Me
2019/07/04 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
资深生产主管自我评价
2013/09/22 职场文书
法学专业应届生求职信
2013/10/16 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
2015年复活节活动总结
2015/02/27 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
护士业务学习心得体会
2016/01/25 职场文书