gpt4 book ai didi

python - struct.pack(!i, 10) 结果在 Windows 上是 "00 00 00 0d 0a"

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:01 25 4
gpt4 key购买 nike

我在 Windows 系统上发现 Python 的 struct.pack("!i", 10) 有一个奇怪的问题。我得到缓冲区并将其保存到文件中,但结果是

 00 00 00 0d 0a

在 Mac OSX 上,结果是

00 00 00 0a

0d 是什么意思?

当我传递 11 而不是 10 时,结果是 00 00 00 0b。所以我认为当我传递 10 时,结果应该是 00 00 00 0a

如果我想在通过 10 时得到 00 00 00 0a,我应该怎么做?

最佳答案

What does the 0d mean?

表示'\r'

If I want to get 00 00 00 0a when I pass 10, what should I do instead?

尝试以二进制模式打开文件:

with open('file', 'wb') as f:
f.write(struct.pack("!i", 10))

当您尝试将 '\n' (0a) 写入 Windows 上的文件并且该文件以文本模式打开时,Python 会添加 '\r ''\n' 之前。

来自 documentation :

In text mode, the default is to convert platform-specific line endings (\n on Unix, \r\n on Windows) to just \n on reading and \n back to platform-specific line endings on writing. This behind-the-scenes modification to file data is fine for text files, but will corrupt binary data like that in JPEG or EXE files. Be very careful to use binary mode when reading and writing such files.

关于python - struct.pack(!i, 10) 结果在 Windows 上是 "00 00 00 0d 0a",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33063636/

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