整数としてのバイトのリストがあります。これは次のようなものです
[120, 3, 255, 0, 100]
このリストをバイナリとしてファイルに書き込むにはどうすればいいでしょうか?
これはうまくいくでしょうか?
newFileBytes = [123, 3, 255, 0, 100]
# make file
newFile = open("filename.txt", "wb")
# write to file
newFile.write(newFileBytes)
ベストアンサー1
これはまさにbytearray
の用途:
newFileByteArray = bytearray(newFileBytes)
newFile.write(newFileByteArray)
Python 3.x を使用している場合は、bytes
代わりに を使用できます (意図をより適切に示すことができるため、おそらくその方がよいでしょう)。ただし、Python 2.x ではbytes
は の別名にすぎないため、これは機能しstr
ません。いつものように、対話型インタープリタで表示する方がテキストで説明するよりも簡単なので、そうします。
Python 3.x:
>>> bytearray(newFileBytes)
bytearray(b'{\x03\xff\x00d')
>>> bytes(newFileBytes)
b'{\x03\xff\x00d'
Python 2.x:
>>> bytearray(newFileBytes)
bytearray(b'{\x03\xff\x00d')
>>> bytes(newFileBytes)
'[123, 3, 255, 0, 100]'