Python 字符串包含字节数组
Python string contains byte array
我对名为 array
的 Python 模块进行了一些试验。它有一种方法可以将数组编码为字符串。
>>>from array import array
>>>a=[1,2,3]
>>>a=array('B',a)
>>>print(a)
array('B',[1,2,3])
>>>print(a.tostring())
b'\x01\x02\x03'
>>>str(a.tostring())
"b'\x01\x02\x03'"
我想将数组的 .tostring()
版本保存到文件中,但是 open().write()
只接受字符串。
有没有办法将这个字符串解码为字节数组?
我想将它用于 OpenGL 数组(glBufferData
接受字节数组)
提前致谢。
这样做:
>>> open('foo.txt','wb').write(a.tostring())
不需要 encode/decode 数组了。您可以使用 'wb'
模式将 tostring()
返回的字节写入文件:
from array import array
a = array('B', [1, 2, 3])
with open(path, 'wb') as byte_file:
byte_file.write(a.tostring())
您还可以使用 'rb'
模式从文件中读取字节:
with open(path, 'rb') as byte_file:
a = array('B', byte_file.readline())
这将从文件中加载存储的数组并将其保存到变量中 a
:
>>> print(a)
array('B', [1, 2, 3])
我对名为 array
的 Python 模块进行了一些试验。它有一种方法可以将数组编码为字符串。
>>>from array import array
>>>a=[1,2,3]
>>>a=array('B',a)
>>>print(a)
array('B',[1,2,3])
>>>print(a.tostring())
b'\x01\x02\x03'
>>>str(a.tostring())
"b'\x01\x02\x03'"
我想将数组的 .tostring()
版本保存到文件中,但是 open().write()
只接受字符串。
有没有办法将这个字符串解码为字节数组?
我想将它用于 OpenGL 数组(glBufferData
接受字节数组)
提前致谢。
这样做:
>>> open('foo.txt','wb').write(a.tostring())
不需要 encode/decode 数组了。您可以使用 'wb'
模式将 tostring()
返回的字节写入文件:
from array import array
a = array('B', [1, 2, 3])
with open(path, 'wb') as byte_file:
byte_file.write(a.tostring())
您还可以使用 'rb'
模式从文件中读取字节:
with open(path, 'rb') as byte_file:
a = array('B', byte_file.readline())
这将从文件中加载存储的数组并将其保存到变量中 a
:
>>> print(a)
array('B', [1, 2, 3])