当前位置:网站首页 > 技术博客 > 正文

python游戏编程代码大全



《Python游戏编程入门》中“3.3 文件输入/输出”主要介绍了读写文本文件和二进制文件的方法。

“3.3.1操作文本”介绍了文本文件的读写方法,请参考、以及。

“3.3.2 操作二进制文件”介绍了二进制文件的读写方法。

二进制文件的特点是直接以二进制形式存储数据,不包含任何文本或可读字符,例如JPEG和PNG等图像文件、MP3和WAV等格式的音频文件、MP4和AVI等格式的视频文件以及WORD和EXCEL等格式的文档文件都属于二进制文件。

二进制文件中包含的数据是“字节串”格式的,因此在向二进制文件中写入数据时,需要将数据转换为“字节串”格式。

相关链接1,“字节串”是以b开头的“字符串”,例如bx00x040x00x00,表示的是原始的二进制数据。

2.2.1 将数据转换为“字节串”格式

使用struct模块中的pack()函数,可以将数据转换为“字节串”格式,该函数的用法如下所示。

 

其中,格式字符参数是一个字符,表示要转换数据的类型;第二个参数表示要转换的数据。

相关链接2 pack()函数格式字符含义如下表所示。

格式字符

对应的数据类型

‘i’

int,整型

‘I’

unsigned int,无符号整型

‘f’

float,单精度浮点数

‘d’

double,双精度浮点数

‘s’

char[],字符串

将整型1024转换为“字节串”格式的代码如图1所示。

图1 将整型1024转换为“字节串”格式的代码

注意1 需要导入struct模块。

2.2.2 将数据写入到二进制文件

将数据写入到二进制文件时,首先以二进制写入的方式打开二进制文件,之后将要写入的数据转换为“字节串”格式;接下来将转换后的“字节串”数据写入到二进制文件中;最后关闭文件。代码如图2所示。

图2 将数据写入到二进制文件

从图2中可以看出,第1行代码导入了struct模块;第2行代码使用open()函数创建/打开名为“1.dat”的二进制文件,open()函数的第二个参数’wb’表示写权限和二进制方式;第3-5行代码使用for循环将0-999这1000个整数转换为“字节串”数据,然后写入到“1.dat”中;最后第6行代码关闭文件。

从二进制文件中读取出来的数据是“字节串”格式的,因此在显示这些数据之前需要使用struct模块中的unpack()函数将“字节串”转换为其它类型。

2.3.1 将“字节串”转换为其它类型

struct模块中的unpack()函数的用法如下所示。

 

其中,unpack()函数的格式字符参数与pack()函数的格式字符含义相同;第二个参数是要转换的“字节串”;该函数的返回值是元组类型,元组中的数据是转换后的指定格式的数据。

2.3.2 从二进制文件中读取数据

从二进制文件中读取数据的代码如图3所示。

图3 从二进制文件中读取数据的代码

其中,第1行代码导入struck模块;第二行代码以二进制读取的方式打开“1.dat”二进制文件;第3行代码通过struct模块中的calcsize()函数获取整型数据对应的“字节串”格式的大小;第4行代码通过read()函数读取“1.dat”中的“一个数据”;第5-9行代码通过while循环逐个读取“1.dat”中的“字节串”数据,并通过unpack()函数将“字节串”数据转换为整型数据并打印出来;第10行代码关闭文件。以上代码运行的效果如图4所示。

注意2 第6行代码得到的value是包含了一个整型数据的元组,第7行代码的value是整型,其值为上述元组中的数据。

图4 代码运行效果

版权声明


相关文章:

  • win10打开本地组策略编辑器2024-12-15 07:30:00
  • j2s2j2024-12-15 07:30:00
  • malloc函数怎么写2024-12-15 07:30:00
  • linux writel2024-12-15 07:30:00
  • uvm实战2024-12-15 07:30:00
  • python中argparse2024-12-15 07:30:00
  • pvp手机ftp服务器apk2024-12-15 07:30:00
  • snat,dnat2024-12-15 07:30:00
  • 三种linux常见的文件系统2024-12-15 07:30:00
  • java静态内部类作用2024-12-15 07:30:00