对于我的项目,我需要能够将随机字节字符串存储在文件中并稍后再次读取字节字符串。例如,我想从以下代码存储 randomByteString:
>>> from os import urandom
>>> randomByteString=urandom(8)
>>> randomByteString
b'zOZ\x84\xfb\xceM~'
这样做的正确方法是什么?
编辑:忘了提到我还想在字节字符串旁边存储“普通”字符串。
对于我的项目,我需要能够将随机字节字符串存储在文件中并稍后再次读取字节字符串。例如,我想从以下代码存储 randomByteString:
>>> from os import urandom
>>> randomByteString=urandom(8)
>>> randomByteString
b'zOZ\x84\xfb\xceM~'
这样做的正确方法是什么?
编辑:忘了提到我还想在字节字符串旁边存储“普通”字符串。
代码如:
>>> fh = open("e:\\test","wb")
>>> fh.write(randomByteString)
8
>>> fh.close()
以二进制模式操作文件。此外,如果文件操作在一个地方附近,您可以以更好的方式进行操作(感谢@Blender):
>>> with open("e:\\test","wb") as fh:
fh.write(randomByteString)
更新:如果你想要强普通字符串,你可以对其进行编码,然后像这样写:
>>> "test".encode()
b'test'
>>> fh.write("test".encode())
这里的 fh 表示之前打开的同一个文件句柄。
工作得很好。不过,您不能指望输出有多大意义。
>>> import os
>>> with open("foo.txt", "wb") as fh:
... fh.write(os.urandom(8))
...
>>> fh.close()
>>> with open("foo.txt", "r") as fh:
... for line in fh.read():
... print line
...
^J^JM-/
^O
R
M-9
J
~G