我有這樣的代碼:如何從ZIP檔案只提取MP3文件
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
文件它工作正常用戶指定。
我有這樣的代碼:如何從ZIP檔案只提取MP3文件
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
文件它工作正常用戶指定。
從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)
的ZIP文件中的文件列表可以使用namelist
函數來獲得。有了這個,你可以過濾那些以mp3
擴展名結尾的文件。 extractall
函數可讓您傳遞要提取的所有文件的列表(默認爲所有文件)。
您可以在列表中的成員get a list of the names,只有extract以後綴.mp3
結尾。
爲python 2做這個工作嗎? –
@Sol:從2.6開始。猜猜在Joachim的URL中要更改哪個單個字符以找到Python 2文檔;-) –
愚蠢的問題,但是如何提取僅以.mp3結尾的文件? –
通過「mp3文件」,你的意思是「文件的名稱以'.mp3'結尾」,還是你的意思是「文件是有效的MP3文件,無論其文件名」?前者更容易。 –
任何可以做到的,mp3的名稱在每個存檔中都是不同的,並且保證只有一個。 –