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 相关文章推荐
Windows下PyMongo下载及安装教程
Apr 27 Python
python在控制台输出进度条的方法
Jun 20 Python
Python list操作用法总结
Nov 10 Python
Python实现读取文件最后n行的方法
Feb 23 Python
python实现微信自动回复功能
Apr 11 Python
Python 实现网页自动截图的示例讲解
May 17 Python
一个可以套路别人的python小程序实例代码
Apr 09 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
Apr 02 Python
Python OrderedDict字典排序方法详解
May 21 Python
keras.layer.input()用法说明
Jun 16 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
php魔术方法功能与用法实例分析
2016/10/19 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
javascript event 事件解析
2011/01/31 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
javascript控制台详解
2015/06/25 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
tab栏切换原理
2017/03/22 Javascript
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
多版本Python共存的配置方法
2017/05/22 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Django的CVB实例详解
2020/02/10 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
详解HTML5中的拖放事件(Drag 和 drop)
2016/11/14 HTML / CSS
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
公务员保密承诺书
2014/03/27 职场文书
财产公证书格式
2014/04/10 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
婚庆主持词大全
2015/06/30 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python
处理canvas绘制图片模糊问题
2022/05/11 Javascript