gpt4 book ai didi

python - Python 使用什么字节顺序写入文件?

转载 作者:行者123 更新时间:2023-11-28 22:49:31 25 4
gpt4 key购买 nike

当使用带有 'wb' 标志的 file.write() 时,Python 使用大端还是小端,或者 sys.byteorder 值?我怎么能确定字节序不是随机的,我问是因为我在同一个文件中混合了 ASCII 和二进制数据,对于二进制数据,我使用 struct.pack() 并将其强制为小字节序,但我不是确保 ASCII 数据发生了什么!

编辑 1:自否决票以来,我将解释更多我的问题!

我正在写一个包含 ASCII 和二进制数据的文件,在 x86 PC 中,该文件将通过网络发送到另一台不是 x86 的计算机,而是一台 PowerPC,女巫在大端,我怎么能确定使用 PowerPC 解析时数据是否相同?

编辑 2:仍在使用 Python 2.7

最佳答案

对于多字节数据,默认遵循机器的架构。如果你需要它跨平台工作,那么你会想要强制它。

ASCII 和 UTF-8 编码为每个字符一个字节,那么它是否受字节顺序影响?没有。

这里是如何打包小<或大>字节序:

import struct

struct.pack('<L', 1234)
'\xd2\x04\x00\x00'

struct.pack('>L', 1234)
'\x00\x00\x04\xd2'

如果您使用的是 UTF-16,您也可以通过这种方式将字符串编码为大端或小端,例如:

s.encode('utf-16LE')
s.encode('utf-16BE')

UTF-8、ASCII 没有字节序,因为每个字符占 1 个字节。

关于python - Python 使用什么字节顺序写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23831422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com