我有这段代码:
from zipfile import ZipFile
import os
import glob
inp = raw_input("Specify a ZIP archive to extract:")
with ZipFile(inp) as zf:
zf.extractall()
它工作正常,因为它提取所有文件,但如何提取用户指定的存档中的所有.mp3
文件。
答案 0 :(得分:1)
您可以get a list of the names列表中的成员,只有extract以后缀.mp3
结尾的成员。
答案 1 :(得分:1)
要从ZIP存档中仅提取MP3文件,您可以执行以下操作:
from zipfile import ZipFile
import os
zip_file = r"c:\folder\myzip.zip"
target_folder = r"C:\Users\Fred\Desktop"
with ZipFile(zip_file, 'r') as my_zip:
mp3_files = [name for name in my_zip.namelist() if os.path.splitext(name)[1].lower() == '.mp3']
my_zip.extractall(target_folder, mp3_files)
可以使用namelist
功能获取ZIP文件中的文件列表。有了这个,你可以只过滤那些以mp3
扩展名结尾的文件。 extractall
函数允许您传递要提取的所有文件的列表(默认为所有文件)。