2016-03-21 90 views
3

我將ruby代碼轉換爲提取zipfile內容的python。將zipfile提取代碼從ruby轉換爲python

我是新來的python,不知道如何完全轉換下面的代碼。

Ruby代碼:

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 

這是我的Python代碼:

def extract_from_zipfile(inzipfile): 

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

則返回值沒有。 請幫忙。

回答

2

在ruby版本中,txtfile將引用最後提取的文件。

在Python中,你可以使用zipfile.ZipFile.namelist獲取文件列表:

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

完美地工作!非常感謝 ! –

+0

@HarshaJasti,不客氣。快樂黑客! – falsetru