1. ホーム
  2. python

[解決済み] Python バイナリファイルに書き込むには?

2022-03-04 05:43:56

質問

私はバイトのリストを整数値で持っています。

[120, 3, 255, 0, 100]

このリストをバイナリとしてファイルに書き出すにはどうしたらよいでしょうか?

これならうまくいくでしょうか?

newFileBytes = [123, 3, 255, 0, 100]
# make file
newFile = open("filename.txt", "wb")
# write to file
newFile.write(newFileBytes)

解決方法は?

これはまさに 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]'