pythonbin文件处理-创新互联

1. 基础知识掌握

创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、网站制作、成都网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

bin文件: open函数创建file对象

打开文件的不同模式:例子:open(“file.txt”,‘r’)

模式  描述

r  以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb  以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+  打开一个文件用于读写。文件指针将会放在文件的开头。

rb+  以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w  打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb  以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

w+  打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

wb+  以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a  打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab  以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+  打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+  以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

t  文本默认

x  写模式,新建一个文件,如果该文件存在,则会报错。

b  二进制模式

+  打开一个文件进行更新(可读可写)。

bin文件的python struct库 读写属性

a = struct.pack('B',0x00)

b = struct.unpack(‘B’,a)

这块可以使用python编译的看一下哦!(你就明白了)

1. struct.pack用于将Python的值根据格式符,转换为字符串(因为Python中没有字节(Byte)类型,

可以把这里的字符串理解为字节流,或字节数组)。其函数原型为:struct.pack(fmt, v1, v2, ...),

参数fmt是格式字符串,关于格式字符串的相关信息在下面有所介绍。v1, v2, ...表示要转换的python值。

2. struct.unpack做的工作刚好与struct.pack相反,用于将字节流转换成python数据类型。它的

函数原型为:struct.unpack(fmt, string),该函数返回一个元组

Format  C Type  Python  字节数

x  pad byte  no value  1

c  char  string of length 1  1

b  signed char  integer  1

B  unsigned char  integer  1

?  _Bool  bool  1

h  short  integer  2

H  unsigned short  integer  2

i  int  integer  4

I  unsigned int  integer or long  4

l  long  integer  4

L  unsigned long  long  4

q  long long  long  8

Q  unsigned long long  long  8

f  float  float  4

d  double  float  8

s  char[]  string  1

p  char[]  string  1

P  void *  long

这快就类似于C语言中的字节对齐,大小端的选择

例子:(后面有说明)

a = struct.pack('

b = struct.pack('>I',0x12345678) #四字节存入,按大端存储

Character  Byte order  Size and alignment

@  native  native 凑够4个字节

=  native  standard 按原字节数

<  little-endian  standard 按原字节数

>  big-endian  standard 按原字节数

!  network (= big-endian)  standard 按原字节数

2. bin文件的打开和模式

file = open(file_name,'wb')#二进制写模式

file = open(file_name,'rb')#二进制读模式

file = open(file_name,'ab')#二进制补充读写模式

3. bin文件读取

import struct

import os

def ReadFile():

filepath='7.bin'

binfile = open(filepath, 'rb') #打开二进制文件

size = os.path.getsize(filepath) #获得文件大小

for i in range(size):

data = binfile.read(1) #每次输出一个字节

print(data)

binfile.close()

if __name__ == '__main__':

ReadFile()

7.bin文件如下

python bin文件处理

4. bin文件写入

import struct

import os

def WriteFile():

filepath='7.bin'

data = 123

binfile = open(filepath, 'ab+') #打开二进制文件(追加完成)

a = struct.pack('B',data)

binfile.write(a)

binfile.close()

if __name__ == '__main__':

WriteFile()

7.bin文件

python bin文件处理

效果图

python bin文件处理

5. bin文件的大小端写入

import struct

file_name = "5.bin"

def Big_little_endian():

file = open(file_name,'wb')

a = struct.pack('I',0x12345678) #四字节存入,正常状态

b = struct.pack('

c = struct.pack('>I',0x12345678) #四字节存入,按大端存储

file.write(a)

file.write(b)

file.write(c)

file.close()

if __name__ == '__main__':

Big_little_endian()

6. bin文件的写0

import struct

bin_file_1 = "1.bin"

def write0x00():

file = open(bin_file_1,'wb')

for i in range(1,0xFF):

data = struct.pack('B',0x00) #写0

file.write(data)

file.close

if __name__ == '__main__':

write0x00()

效果图:

python bin文件处理

7. bin文件的写1

import struct

bin_file_2 = "2.bin"

def write0xFF():

file = open(bin_file_2,'wb')

for i in range(0,0xFF):

data = struct.pack('B',0xFF) #写1

file.write(data)

file.close

if __name__ == '__main__':

write0x00()

效果图: 无锡正规妇科医院 http://www.jlfukeyy.com/

python bin文件处理

8. bin文件的合并

1.bin和2.bin合并成merage.bin

import struct

bin_file_1 = "1.bin"

bin_file_2 = "2.bin"

bin_file_merage = "merage.bin"

def merage_bin():

file_merage = open(bin_file_merage,'wb')

file_1 = open(bin_file_1,'rb')

data = file_1.read()

file_merage.write(data)

file_2 = open(bin_file_2,'rb')

data = file_2.read()

file_merage.write(data)

file_1.close()

file_2.close()

file_merage.close()

if __name__ == '__main__':

merage_bin()

效果图:

python bin文件处理

9. bin文件写入字符串

import struct

import string

bin_file_1 = "7.bin"

enter = memoryview(b"STARTX") #返回值是元组

def writeString():

file = open(bin_file_1,'wb')

for i in enter:

data = struct.pack('B',i)

file.write(data)

file.close

if __name__ == '__main__':

writeString()

效果图:

python bin文件处理

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:pythonbin文件处理-创新互联
网页地址:http://pwwzsj.com/article/djiddo.html