在Python中存储随机字节字符串

时间:2013-04-20 04:08:10

标签: python

对于我的项目,我需要能够在文件中存储随机字节字符串并稍后再次读取字节字符串。例如,我想从以下代码中存储randomByteString:

>>> from os import urandom 
>>> randomByteString=urandom(8)
>>> randomByteString
b'zOZ\x84\xfb\xceM~'

这样做的正确方法是什么?

编辑:忘记提及我还想将'普通'字符串与字节字符串一起存储。

2 个答案:

答案 0 :(得分:3)

代码如:

 >>> 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表示先前打开的相同文件句柄。

答案 1 :(得分:0)

工作得很好。你不能指望输出有多大意义。

>>> 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