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中处理时间之clock()方法的使用
May 22 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
Python科学计算之NumPy入门教程
Jan 15 Python
Atom的python插件和常用插件说明
Jul 08 Python
在python中安装basemap的教程
Sep 20 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
python控制nao机器人身体动作实例详解
Apr 29 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
Python实现LR1文法的完整实例代码
Oct 25 Python
python中K-means算法基础知识点
Jan 25 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
PHP memcache扩展的三种安装方法
2009/04/26 PHP
php设计模式之观察者模式的应用详解
2013/05/21 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
jQuery调用ajax请求的常见方法汇总
2015/03/24 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
Python实现从订阅源下载图片的方法
2015/03/11 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
浅谈Python中range和xrange的区别
2017/12/20 Python
python MySQLdb使用教程详解
2018/03/20 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
python_mask_array的用法
2020/02/18 Python
基于Python爬取京东双十一商品价格曲线
2020/10/23 Python
HTML5触摸事件实现移动端简易进度条的实现方法
2018/05/04 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
七年级英语教学反思
2014/01/15 职场文书
我的小天地教学反思
2014/04/30 职场文书
公司领导班子对照材料
2014/08/18 职场文书
环境保护建议书
2014/08/26 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
校运会宣传稿大全
2015/07/23 职场文书
Pytorch 实现变量类型转换
2021/05/17 Python
Python字符串格式化方式
2022/04/07 Python