如何从ZIP存档中仅提取mp3文件

时间:2016-04-21 11:38:43

标签: python zip

我有这段代码:

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文件。

2 个答案:

答案 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函数允许您传递要提取的所有文件的列表(默认为所有文件)。

相关问题