one*_*ain 3 python struct pack
我struct.pack("!i", 10)
在Windows系统上发现了一个奇怪的Python问题.我得到缓冲区并将其保存到文件中,但结果是
00 00 00 0d 0a
Run Code Online (Sandbox Code Playgroud)
在Mac OSX上的结果是
00 00 00 0a
Run Code Online (Sandbox Code Playgroud)
什么0d
意思?
当我通过11
而不是10
,结果是00 00 00 0b
.所以我想当我通过时10
,结果应该是00 00 00 0a
.
如果我想00 00 00 0a
通过10
,我该怎么办呢?
什么
0d
意思?
它的意思是 '\r'
如果我想
00 00 00 0a
通过10
,我该怎么办呢?
尝试以二进制模式打开文件:
with open('file', 'wb') as f:
f.write(struct.pack("!i", 10))
Run Code Online (Sandbox Code Playgroud)
当您在Windows上尝试write '\n'
(0a
)到文件并在文本模式下打开文件时,Python '\r'
之前会添加'\n'
.
来自文档:
在文本模式下,默认情况下将特定于平台的行结尾(
\n
在Unix上,\r\n
在Windows上)转换为仅\n
在读取时,并\n
在写入时转换回特定于平台的行结尾.这幕后的修改文件数据精细的文本文件,但会喜欢,在破坏了二进制数据JPEG
或EXE
文件.在读取和写入此类文件时要非常小心地使用二进制模式.
归档时间: |
|
查看次数: |
323 次 |
最近记录: |