2016-03-21 17 views
3

ruby​​からzipfileの内容を抽出するPythonにコードを変換しています。ruby​​からpythonへのzipfile抽出コードの変換

私は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

ルビーバージョンでは、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

関連する問題