我为我的音乐目录制作了一个自动提取器。我编写了我的代码来处理 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
非常感谢。