0

抽出プロセスで機能するコードがあります。最初は zip ファイル用に作成しましたが、rar ファイルもあることがわかりました。そこで、rarfile ライブラリをインストールし、抽出プロセスを実装しました。

ただし、最初にスキャンされるファイルは .zip ファイルであるため、コードで例外が発生するようです。これで、このエラーが発生した理由が説明できると思います。

raise NotRarFile("Not a Rar archive: "+self.rarfile)
NotRarFile: Not a Rar archive: /Users/me/Downloads/_zips/test2/Break_The_Bans_-_Covers__B-sides.zip

抽出コードは次のとおりです。

for ArchivesFiles in chemin_zipfiles :    
        truncated_file = os.path.splitext(os.path.basename(ArchivesFiles))[0]
        if not os.path.exists(truncated_file):
            os.makedirs(truncated_file)
            rar_ref = rarfile.RarFile(ArchivesFiles,'r')
            zip_ref = zipfile.ZipFile(ArchivesFiles,'r')
            new_folder = os.path.realpath(truncated_file)
            rar_ref.extractall(new_folder)
            zip_ref.extractall(new_folder)

そして、このコードが呼び出される前に、拡張子が .zip および .rar のすべてのファイルを取得します。

chemin_zipfiles = [os.path.join(root, name)
             for root, dirs, files in os.walk(directory)
             for name in files
             if name.endswith((".zip", ".rar"))]

同じプロセスと機能でどのように解凍して解凍できますか? どこが間違っていますか?どうもありがとう

4

1 に答える 1