音楽カタログの自動抽出器を作成しました。zip と rar ファイルを操作するようにコードを記述しました。コードは正常に動作していますが、作業ディレクトリに他の種類のファイルがある場合、次のエラー メッセージが表示されます。
raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file
これは、mp3 ファイルまたはその他のものが抽出プロセスをブロックまたは中断していることを意味します。これが私のコードです:
def extraction():
funcs = {'.rar':rarfile.RarFile, '.zip':zipfile.ZipFile}
for ArchivesFiles in chemin_zipfiles :
truncated_file, ext = os.path.splitext(os.path.basename(ArchivesFiles))
if not os.path.exists(truncated_file):
new_folder = os.makedirs(truncated_file)
arch_ref = funcs[ext](ArchivesFiles,'r')
new_folder = os.path.realpath(truncated_file)
arch_ref.extractall(new_folder)
どうすればこれを回避できますか?
編集 :
私はいくつかの変更を加えました:
def extraction():
funcs = {'.rar':rarfile.RarFile, '.zip':zipfile.ZipFile}
for ArchivesFiles in chemin_zipfiles :
truncated_file, ext = os.path.splitext(os.path.basename(ArchivesFiles))
if not os.path.exists(truncated_file):
new_folder = os.makedirs(truncated_file)
arch_ref = funcs[ext](ArchivesFiles,'r')
new_folder = os.path.realpath(truncated_file)
try:
arch_ref.extractall(new_folder)
except BadZipfile:
continue
except NotRarFile:
continue
それでもエラーが発生します:
raise NotRarFile("Not a Rar archive: "+self.rarfile)
NotRarFile: Not a Rar archive: /Volumes/me/albums/reggae/reggae_dub/._Dubalizer_SubExisteÌncia_freshpoulp.rar
どうもありがとう。