3

Python 3は、いくつかの文字列を含むバイナリファイルがある場合、ファイルの読み取りプロセス全体を非常に複雑にしました。

読んだものがASCIIテキストであると確信している場合は実行できますstring.decode('ascii')が、ファイルにnull('\x00')で終了する文字列を含む文字列があり、文字列のリストへの変換を読み取る必要があります。バイトごとに移動して、それがnullかどうかをチェックせずに、それを行うための新しい方法はどのようになりますか?

mylist = chunkFromFile.split('\x00')

TypeError: Type str doesn't support the buffer API
4

1 に答える 1

6

chunkFromFileそれがbytesオブジェクトだと思います。次に、メソッドにbytes引数を指定する必要もあります。.split()

mylist = chunkFromFile.split(b'\x00')

見る:

>>> chunkFromFile = bytes((123,45,0,67,89))
>>> chunkFromFile
b'{-\x00CY'
>>> chunkFromFile.split(b'\x00')
[b'{-', b'CY']
>>> chunkFromFile.split('\x00')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Type str doesn't support the buffer API
于 2012-07-04T09:29:36.687 に答える