Python应用开发——制作bin文件

目录

  • Python应用开发——制作bin文件
    • 前言
    • 1 环境搭建
    • 2 代码编写与测试
    • 结束语

前言

什么是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这个领域我也是小白一个,只是根据以往嵌入式的经验列举了这么一些例子,如果有哪里写的不对或者写的不够好的,欢迎评论区留言指正,谢谢

Python应用开发——制作bin文件相关推荐

  1. 基于小程序+云开发制作一个文件传输助手小程序

    微信文件传输助手是真人?基于云开发制作一个文件传输助手小程序,你发给ta的小秘密,只有你自己知道. 开发步骤 一.创建小程序 二.云开发配置 环境配置 绑定云环境 三.页面设计 首页 详情页 底部弹窗 ...

  2. linux .bin文件处理,linux下制作.bin文件方法简介

    linux 下制作二进制 .bin 的文件 制做方法是使用cat 命令将执行脚本和打包文件同事放到一个.bin的文件里 这样安装的时候只要使用一个包,直接执行该包即可安装完毕,简单方便. 例:制作安装 ...

  3. Linux下制作bin文件,并对其进行截取、合并、修改

    在某些情况下,可能会用到全为某个值的 bin 文件,可使用 dd 命令配合 /dev/zero 这个特殊的文件设备,来生成全为 0x00 的 bin 文件.然后再使用 tr 命令,替换0x00 为 特 ...

  4. Python程序开发——第八章 文件

    目录 一.文件的打开和关闭 (一)打开 (二)关闭 二.读取数据 (一)read()方法 (二)readline()方法 (三)readlines()方法 三.写入数据 (一)write()方法 (二 ...

  5. python程序开发模块化_python-17-Python文件两种用途、模块化程序开发

    --------------------------------python文件的两种用途---------------------------------- py文件的两种用途: 1.直接运行 pr ...

  6. 【python】开发制作的急速快搜软件。

    # -*- coding:utf-8 -*- import os,sys from configparser import ConfigParser import psutil import wx i ...

  7. 【杰理AC696X】外挂FLASH音乐播放及Bin文件制作

    外挂FLASH音乐播放及Bin文件制作 测试SDK版本:<ac696n_soundbox_sdk_v1.6.0> 文章目录 外挂FLASH音乐播放及Bin文件制作 前言 一.板级配置 1. ...

  8. Python开发.py脚本文件中的#!/usr/bin/python是什么意思?

    首先要解释一下 #! 是什么吧 在Unix中,凡是被#!注释的,统统是加载器(解释器)的路径. 脚本文件头部的#!/usr/bin/python是告诉操作系统调用 /usr/bin 下的 python ...

  9. python制作epub文件代码

    python制作epub文件代码,已封装成类,可以直接使用. # encoding:utf-8 # !/usr/bin/python3 import zipfile import os.pathcon ...

最新文章

  1. SwipeBackActivity 的使用
  2. 如何在windows本地用命令行访问SAP kyma实例
  3. Educational Codeforces Round 95 (Rated for Div. 2)
  4. 再战“超融合”,戴尔、Nutanix绝世好CP
  5. mysql innodb 报错_mysql报错1286 Unknown storage engine 'InnoDB'
  6. Understand Google file system paper
  7. Simpleperf: 一款能在Android 做 Native Profiling 的工具
  8. quatus_sh tcl获取帮助
  9. iClip mac如何自定义声音?iClip剪切板管理软件更改声音的方法
  10. 2019年计算机操作系统考研真题
  11. 东芝打印机共享怎么设置_win7系统东芝STUDLO2303A打印机怎么共享网络
  12. Gym 100015A Another Rock-Paper-Scissors Problem
  13. 神雕侠侣手游mm虚拟服务器,【神雕侠侣】(神雕传说)手游虚拟机镜像一键服务端+配套安卓客户端+本地验证+启动教程...
  14. 二、MySQL 介绍及 MySQL 安装与配置
  15. 计算机网络信息安全特征,计算机基础知识:网络信息安全的概述及特征
  16. 俄语转化成拉丁字母java_java - 如何在Java String中将西里尔字母转换为英语拉丁语? - SO中文参考 - www.soinside.com...
  17. QQ盗号软件后门分析与反击
  18. 计算机专业机房 英语,计算机与网络英语词汇(C3)
  19. 2.15 Spring Framework 5.x 之ApplicationContext附加功能
  20. 毕业设计-基于BP神经网络预测系统的设计- MATLAB

热门文章

  1. DFIG虚拟惯性控制+下垂控制的系统一次调频的simulink模型
  2. 安全常识 厨房这根管子祸害了很多家庭 一定要注意
  3. python给折线图区间填充颜色_Python气象数据处理与绘图(3):以EOF为例画柱状图(折线图)和带地图底图的填色图...
  4. Linux 防火墙与NAT服务
  5. potplayer播放器没有声音、下载不了解码器?
  6. 操作系统第五章_03 假脱机技术 (SPOOLing技术)
  7. linux kernel —— kernel.ko 移至 kernel.ko.xz
  8. 摸鱼神器:在命令行中玩斗地主
  9. TLSR8258开发-低功耗
  10. 《机器学习实战》chap1 机器学习概览