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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Python函数中定义参数的四种方式
Nov 30 Python
Python+django实现文件下载
Jan 17 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
python解析json串与正则匹配对比方法
Dec 20 Python
Python 分发包中添加额外文件的方法
Aug 16 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
python 协程 gevent原理与用法分析
Nov 22 Python
python的time模块和datetime模块实例解析
Nov 29 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
jupyter notebook 添加kernel permission denied的操作
Apr 21 Python
python两种获取剪贴板内容的方法
Nov 06 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的ob_start();控制您的浏览器cache!
2006/11/25 PHP
PHP用mysql数据库存储session的代码
2010/03/05 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php从给定url获取文件扩展名的方法
2015/03/14 PHP
php接口技术实例详解
2016/12/07 PHP
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
在图片上显示左右箭头类似翻页的代码
2013/03/04 Javascript
javascript 上下banner替换具体实现
2013/11/14 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
js判断日期时间有效性的方法
2015/10/24 Javascript
Jquery 垂直多级手风琴菜单附源码下载
2015/11/17 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
JavaScript+H5实现微信摇一摇功能
2018/05/23 Javascript
写gulp遇到的ES6问题详解
2018/12/03 Javascript
Node.js API详解之 assert模块用法实例分析
2020/05/26 Javascript
Python字符串替换实例分析
2015/05/11 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python创建文件备份的脚本
2018/09/11 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
浅谈Python编程中3个常用的数据结构和算法
2019/04/30 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
使用分层画布来优化HTML5渲染的教程
2015/05/08 HTML / CSS
实习单位接收函
2014/01/11 职场文书
销售团队获奖感言
2014/08/14 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
java代码实现空间切割
2022/01/18 Java/Android
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android
css让页脚保持在底部位置的四种方案
2022/07/23 HTML / CSS