2016-04-21 2 views
0

Ich habe diesen Code extrahieren:Wie nur MP3-Dateien aus einem ZIP-Archiv

from zipfile import ZipFile 
import os 
import glob 
inp = raw_input("Specify a ZIP archive to extract:") 
with ZipFile(inp) as zf: 
    zf.extractall() 

Es funktioniert gut, weil es alle Dateien extrahiert aber wie extrahieren wir all .mp3 Dateien im Archiv, das der Benutzer legt fest, .

+1

Mit "mp3-Dateien" meinst du "Dateien, deren Namen in' .mp3' enden ", oder meinst du" Dateien, die gültige mp3-Dateien unabhängig von ihrem Dateinamen sind "? Ersteres ist einfacher. –

+0

jeder könnte tun, der Name der mp3 ist in jedem Archiv anders und es gibt garantiert nur eins. –

Antwort

1

nur die MP3-Dateien aus einem ZIP-Archiv zu extrahieren, Sie Folgendes tun können:

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) 

Die Liste der Dateien in der ZIP-Datei erhalten werden kann, die namelist Funktion. Mit diesem können Sie nur die Dateien filtern, die mit einer mp3 Erweiterung enden. Mit der Funktion extractall können Sie eine Liste aller Dateien übergeben, die Sie extrahieren möchten (standardmäßig alle Dateien).

1

Sie könnten get a list of the names der Mitglieder in der Liste, und nur extract die mit dem Suffix Endung .mp3.

+0

funktioniert das auch für Python 2? –

+1

@Sol: ja seit 2.6. Ratet mal, welches einzelne Zeichen in Joachims URLs geändert werden muss, um die Python 2-Dokumentation zu finden ;-) –

+0

Blöde Frage, aber wie extrahieren Sie die Dateien, die nur mit .mp3 enden? –

Verwandte Themen