Python应用之bin文件的制作

 更新时间:2023年01月30日 08:28:55   作者:柒壹漆  
bin是二进制文件,其用途依系统或应用而定。一种文件格式binary的缩写。这篇文章主要为大家介绍了Python如何实现bin文件的制作,需要的可以参考一下

前言

什么是bin?

bin是二进制文件,其用途依系统或应用而定。一种文件格式binary的缩写。一个后缀名为".bin"的文件,只是表明它是binary格式。比如虚拟光驱文件常用".bin"作为后缀,但并不意味着所有的bin文件都是虚拟光驱文件。一般来讲是机器代码,汇编语言编译后的结果。

在嵌入式开发中bin文件常当做烧录固件,是代码编译后的结果。

实际上bin是存储二进制的一种文件格式,它不仅可以存放代码,还可以存放各种数据,比如图片、音乐、视频等,也可以存放一些自定义的数据,比如:当我们需要用串口或者USB传输大量的数据时,就可以把数据打包成bin文件,这样的话方便一些上位机软件读写。

还有就是有时候我们需要在一个bin文件上面进行批量修改,比如:每个设备自带一个独立的序列号,这个是在代码上面写死的,但是如果每次都得修改代码再重新编译生成bin文件,那就太麻烦了,这个时候我们就可以用python直接修改bin文件,这样就可以减少很多工作量。

1 环境搭建

Python的环境这里就不具体介绍了,网上教程也很多。

特别说明:本文举的例子皆是基于windows系统下python3来实现的,其他平台不一定完全适配。

2 代码编写与测试

1、将一个列表的数据输出到一个bin文件

示例代码如下:

output_path = 'test.bin'  # 输出文件的路径和文件名称,这里直接放在工程根目录下,所以没有写绝对路径

# 待写入的数据
li = [0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20, 0x21, 0x22]

print(bytes(li))

with open(output_path, 'ab') as f:
    f.write(bytes(li))
    f.close()

运行结果:

运行后查看生成的文件:

2、在一个bin文件末尾增加数据

示例代码如下:

test_path = 'test.bin'  # 输入文件的路径和文件名称,这里是在工程根目录下,所以没有写绝对路径

# 待插入的数据
li = [0x10, 0x11, 0x12, 0x13, 0x14]
# print(bytes(li))

# 打开并查看原文件
with open(test_path, 'rb') as f:
    print(bytes(f.read()))  #查看文件内容

# 插入数据
with open(test_path, 'ab+') as f:   # ab+: 在文本末尾追加内容
    f.write(bytes(li))
    f.close()

# 打开并查看插入数据后的文件
with open(test_path, 'rb') as f:
    print(bytes(f.read()))  #查看文件内容

运行前查看原文件:

运行结果:

运行后查看文件:

3、修改bin文件里面的某些数据

示例代码如下:

test_path = 'test.bin'  # 输入文件的路径和文件名称,这里是在工程根目录下,所以没有写绝对路径
lines = []

# 打开原文件并读取原数据
with open(test_path, 'rb') as f:
    lines = list(f.read())
    print(bytes(lines))  # 打印文件内容
    f.close()

# 对原数据进行修改
lines[0] = 0xAA
lines[2] = 0xBB

# 把新数据覆盖到原文件
with open(test_path, 'wb') as f:
    # 重新写入数据
    f.write(bytes(lines))
    f.close()

# 打开并查看修改数据后的文件
with open(test_path, 'rb') as f:
    print(bytes(f.read()))  # 查看文件内容

运行前查看原文件:

运行结果:

运行后查看文件:

到此这篇关于Python应用之bin文件的制作的文章就介绍到这了,更多相关Python制作bin文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python画柱状图--不同颜色并显示数值的方法

    python画柱状图--不同颜色并显示数值的方法

    今天小编就为大家分享一篇python画柱状图--不同颜色并显示数值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python2 与 pyhton3的输入语句写法小结

    python2 与 pyhton3的输入语句写法小结

    这篇文章主要给大家介绍了关于python2 与 pyhton3的输入语句写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • Python通过requests模块实现抓取王者荣耀全套皮肤

    Python通过requests模块实现抓取王者荣耀全套皮肤

    只学书上的理论是远远不如实践带来的提升快,只有在实例中才能获得能力的提升,本篇文章手把手带你用Python实现抓取王者荣耀全套皮肤,大家可以在过程中查缺补漏,提升水平
    2021-10-10
  • Django框架创建项目的方法入门教程

    Django框架创建项目的方法入门教程

    这篇文章主要介绍了Django框架创建项目的方法,结合实例形式分析了Django框架管理工具的使用及创建项目的相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • PyQt实现异步数据库请求的实战记录

    PyQt实现异步数据库请求的实战记录

    开发软件的时候不可避免要和数据库发生交互,但是有些 SQL 请求非常耗时,如果在主线程中发送请求,可能会造成界面卡顿,本文将介绍一种让数据库请求变得和前端的 ajax 请求一样简单,希望对大家有所帮助
    2023-12-12
  • 解决windows下命令行执行python3失效,会打开应用商店问题

    解决windows下命令行执行python3失效,会打开应用商店问题

    这篇文章主要介绍了解决windows下命令行执行python3失效,会打开应用商店问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Python使用Matplotlib绘制甘特图的实践

    Python使用Matplotlib绘制甘特图的实践

    甘特图已经发展成项目规划和跟踪的必备工具,本文主要介绍了Python使用Matplotlib绘制甘特图的实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Python爬取APP下载链接的实现方法

    Python爬取APP下载链接的实现方法

    这篇文章主要实现的是批量下载安卓APP。显然用手点是不科学的。于是尝试用Python写了一个半自动化的脚本。所谓半自动化,就是把下载链接批量抓取下来,然后一起贴到迅雷里进行下载,这样可以快速批量下载。有需要的朋友们可以一起看看吧。
    2016-09-09
  • Django点赞的实现示例

    Django点赞的实现示例

    本文主要介绍了Django点赞的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • 10个杀手级应用的Python自动化脚本

    10个杀手级应用的Python自动化脚本

    重复的任务总是耗费时间和枯燥的。如果逐一裁剪100张照片,或者做诸如Fetching APIs、纠正拼写和语法等任务,所有这些都需要大量的时间。为什么不把它们自动化呢?本文详细介绍了10个Python自动化脚本,感兴趣的小伙伴可以阅读一下
    2023-03-03

最新评论