1

30,000 個のフォルダーがあり、各フォルダーには json データの 5 つの bz2 ファイルが含まれています。

os.walk() を使用してファイル パスをループし、各圧縮ファイルを解凍して元のディレクトリに保存しようとしています。

import os
import bz2

path = "/Users/mac/PycharmProjects/OSwalk/Data"
for(dirpath,dirnames,files) in os.walk(path):

for filename in files:
    filepath = os.path.join(dirpath , filename)
     newfilepath = os.path.join(dirpath , filename + '.decompressed')

        with open(newfilepath , 'wb') as new_file , 
          bz2.BZ2File(filepath , 'rb') as file:

              for data in iter(lambda: file.read(100 * 1024) , b''):
                  new_file.write(data)

コードを実行すると、次のエラーが発生します。

File 
"/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_compr 
ession.py", line 103, in read
data = self._decompressor.decompress(rawblock, size)
OSError: Invalid data stream

デコンプレッサ メソッドを使用して Mac でコードを実行すると問題が発生する可能性があることを読みましたが、それとも他に何か不足していますか?

4

1 に答える 1