抽出プロセスで機能するコードがあります。最初は 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"))]
同じプロセスと機能でどのように解凍して解凍できますか? どこが間違っていますか?どうもありがとう