数値のリストをバイトとしてバイナリファイルに書き込むにはどうすればいいですか? 質問する

数値のリストをバイトとしてバイナリファイルに書き込むにはどうすればいいですか? 質問する

整数としてのバイトのリストがあります。これは次のようなものです

[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]'

おすすめ記事