2016-03-21 5 views
3

Ich konvertiere einen Code von Ruby in Python, der den Inhalt einer Zip-Datei extrahiert.Konvertieren von Zipfile-Extraktionscode von Ruby nach Python

Ich bin neu in Python und nicht sicher, wie Sie den untenstehenden Code genau konvertieren.

Ruby-Code:

def extract_from_zipfile(inzipfile) 

    txtfile="" 
    Zip::File.open(inzipfile) { |zipfile| 
    zipfile.each { |file| 
     txtfile=file.name 
     zipfile.extract(file,file.name) { true } 
    } 
    } 

    return txtfile 
end 

das ist mein Python-Code:

def extract_from_zipfile(inzipfile): 

txtfile="" 
with zipfile.ZipFile(inzipfile,"r") as z: 
    z.extractall(txtfile) 
return txtfile 

es den Wert als keine zurückgibt. Bitte helfen Sie.

Antwort

2

In der Ruby-Version verweist txtfile die letzte extrahierte Datei.

In Python können Sie die Dateiliste mit zipfile.ZipFile.namelist erhalten:

def extract_from_zipfile(inzipfile): 
    txtfile = "" 
    with zipfile.ZipFile(inzipfile, "r") as z: 
     z.extractall(txtfile) 
     names = z.namelist() # <--- 
     if names:    # <--- To prevent IndexError for empty zip file. 
      txtfile = names[-1] # <--- 
    return txtfile 
+0

funktionierte perfekt! Danke vielmals ! –

+0

@HarshaJasti, Gern geschehen. Fröhliches Hacken! – falsetru