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实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
python 表达式和语句及for、while循环练习实例
Jul 07 Python
Python实现基本数据结构中栈的操作示例
Dec 04 Python
使用pandas模块读取csv文件和excel表格,并用matplotlib画图的方法
Jun 22 Python
Python实现FTP弱口令扫描器的方法示例
Jan 31 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
如何使用python切换hosts文件
Apr 29 Python
python要安装在哪个盘
Jun 15 Python
Python 可视化神器Plotly详解
Dec 26 Python
如何理解python接口自动化之logging日志模块
Jun 15 Python
浅谈Python数学建模之固定费用问题
Jun 23 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实现LOL数据远程获取
2014/06/10 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
php curl 上传文件代码实例
2015/04/27 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
用JavaScript显示随机图像或引用
2009/04/21 Javascript
javascript 图片裁剪技巧解读
2012/11/15 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
html文档中的location对象属性理解及常见的用法
2014/08/13 Javascript
Nodejs中调用系统命令、Shell脚本和Python脚本的方法和实例
2015/01/01 NodeJs
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
原生JavaScript实现换肤
2021/02/19 Javascript
python调用java的Webservice示例
2014/03/10 Python
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
在Heroku云平台上部署Python的Django框架的教程
2015/04/20 Python
Python实现字符串格式化的方法小结
2017/02/20 Python
python机器人行走步数问题的解决
2018/01/29 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
2020/11/28 Python
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
80后职场人的职业生涯规划
2014/03/08 职场文书
光棍节联谊晚会活动策划书
2014/10/10 职场文书
我的1919观后感
2015/06/03 职场文书
呐喊读书笔记
2015/06/30 职场文书
同乡会致辞
2015/07/30 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技