python/c/c++ 二进制文件读写

本文详细介绍了Python中二进制文件的读写操作,包括以二进制模式(wb和rb)打开文件,使用struct模块进行进制转换,以及不同数据类型的读写实例。同时,文章还探讨了如何用C++读取Python生成的二进制文件。
摘要由CSDN通过智能技术生成

1.python 二进制文件的读写

只讨论二进制文件的读写。
以二进制的形式打开文件

with open(filename , 'wb') as fd :
     #do with fd
     fd.write(strobject)#二进制strobject写入文件
     fd.read(byte_len)#读取byte_len字节数据

wb:表示以二进制的方式打开文件
rb :表示以二进制的方式打开文件

2.关于进制的转换

需要使用到struct进行打包成二进制字符串或者相应的解包成元组。

#根据format形式,把后面的变量v1,v2,...打包成字节对象形式
byte_objects = struct.pack(format,v1,v2,...)

#根据format形式,从buffer中解包出数据,返回值的形式是元组
value_tuple = struct.unpack(format,buffer)

3.读写几种数据类型的例子

#写入文件
with open('test.data','wb') as fd:
    i = 1
    bi = struct.
C++中的文本文件二进制文件也有类似Python的区别。下面是一些代码示例,来说明二者的不同之处。 文本文件的读写: ```c++ #include <iostream> #include <fstream> #include <string> using namespace std; int main() { // 打开文件 ofstream outfile("textfile.txt"); // 写入数据 outfile << "Hello World!" << endl; // 关闭文件 outfile.close(); // 打开文件 ifstream infile("textfile.txt"); // 读取数据 string text; while (getline(infile, text)) { cout << text << endl; } // 关闭文件 infile.close(); return 0; } ``` 在这个示例中,我们使用 `ofstream` 和 `ifstream` 两个类来分别写入和读取文本文件。`ofstream` 用于写入文件,`ifstream` 用于读取文件。在写入文件时,我们可以使用 `<<` 操作符将数据写入文件,这里我们写入了一个字符串 "Hello World!" 和一个换行符。在读取文件时,我们使用 `getline()` 函数来逐行读取文件中的内容,然后输出到控制台上。 二进制文件的读写: ```c++ #include <iostream> #include <fstream> using namespace std; struct Person { char name[20]; int age; }; int main() { // 创建结构体数据 Person person = {"Tom", 23}; // 打开文件 ofstream outfile("binaryfile.bin", ios::out | ios::binary); // 写入数据 outfile.write(reinterpret_cast<char*>(&person), sizeof(Person)); // 关闭文件 outfile.close(); // 打开文件 ifstream infile("binaryfile.bin", ios::in | ios::binary); // 读取数据 Person person2; infile.read(reinterpret_cast<char*>(&person2), sizeof(Person)); // 关闭文件 infile.close(); // 输出数据 cout << "Name: " << person2.name << endl; cout << "Age: " << person2.age << endl; return 0; } ``` 在这个示例中,我们使用结构体 `Person` 来存储数据,并将其写入二进制文件。在写入文件时,我们使用 `write()` 函数来写入数据。需要注意的是,由于二进制文件不是文本文件,因此我们需要将结构体的指针转换为字符指针,即使用 `reinterpret_cast<char*>()` 进行类型转换。在读取文件时,我们使用 `read()` 函数来读取数据,同样需要进行类型转换。最后,我们输出读取的数据。 总的来说,文本文件二进制文件都有各自的优缺点,应根据实际需求来选择使用哪种类型的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值