[Python3] 通过二进制文件与C++程序交互[TZZ]

2024-11-08 06:34:54

1、启动IDLE程序(必须安装Python 3),点击界面菜单中的“File > New File”,新建一个空白的Python源代码文件,然后保存为“interact_with_cpp.py”文件;

[Python3] 通过二进制文件与C++程序交互[TZZ]

3、继续向源码文件中追加“调用write函数的测试代码”。在这份代码中,通过open函数创建/打开了一个二进制文件,然后调用write函数将交互数据写入打开的文件中(Python中写入文件的方法可以参考引用文章)。代码编写完毕后,点击F5运行程序,见到打印信息且未出现任何错误提示,则表示代码运行正常;

[Python3] 通过二进制文件与C++程序交互[TZZ]

5、关掉记事本,重新用十六机制编辑器打开“interact.dat”(比如:UltraEditor)。以16进制打开文件后,所有的数据就都可以与我们之前写入的数据对上了(分析文件格式时,离不开十六进制编辑器(就是二进制编辑器,只是数值以16进制数显示));

[Python3] 通过二进制文件与C++程序交互[TZZ]

7、read函数代码编写完毕后,继续添加调用“read函数的测试代码”,确认一下之前以二进制保存的文件是否可以正常读取。如果Python自己都没法读,那么C++估计更不可能。编写完代码后,点击F5运行程序,如果能从Shell窗口见到正确的内容,则表示程序正常;

[Python3] 通过二进制文件与C++程序交互[TZZ]

10、在打开的“InteractPython.cpp”文件中,编写读取“D:\test\interact.dat”文件的代码。这份代码中,引用了iostream(提供标准输入/输出)和fstream(提供文件访问)头文件。定义了一个ifstream对象(用于读取文件)并以二进制打开目标文件。随后,调用ifstream.read()读取了3个字节的文件标志和4个字节的数据长度。接着,读取了dataLen个字节的数据并保存到已分配的缓冲区中。最后,通过std::cout输出读取到内容(16进制输出字节时,必须把数据转换成int/unsigned类型)。数据区访问结束后,通过delete释放;

[Python3] 通过二进制文件与C++程序交互[TZZ]

11、C++读取文件的代码编写完毕后,点击工具栏上的“本地Windows调试器”调试运行程序。代码正常时,可以从控制台窗口中见到读取到的文件内容。通过核对后,可以确定文件读取成功;

[Python3] 通过二进制文件与C++程序交互[TZZ]

12、至此,Python通过二进制文件与C++程序交互的演示过程已全部介绍完毕。下一篇,我们接着谈谈“Python中的列表排序方法”!Enjoy!

猜你喜欢