Python:如何将int转换为32位size_t并将其写入二进制文件

时间:2018-07-26 18:00:18

标签: python python-3.x

我正在尝试在python文件中编辑.bin以通过另一个程序运行,该程序要求第一个数字为32位size_t。我正在使用64位版本的python3。以下是到目前为止我尝试过的内容。

with open(outputFileTrain, 'wb') as binFile:
     file2Len = ctypes.c_int_32 (file2Len)
     z = struct.pack('i',file2Len)
     binFile.write(z)
     binFile.close()

谢谢

1 个答案:

答案 0 :(得分:0)

因此,假设您确实需要32位(size_t可能是32位,也可能不是32位),则签名struct是您需要的模块。它将int转换为bytes,然后可以将其写入以二进制模式打开的文件。

with open(outputFileTrain, 'wb') as binFile:
    z = struct.pack('i',file2Len)
    binFile.write(z)

如果cint应该是无符号的(可能是其他程序将其用作size_t的情况,请改用struct.pack('I',...