2016-03-21 13 views
3

Bir zip dosyasının içeriğini ayıklayan ruby'den python'a bir kod dönüştürüyorum.zipfile ayıklama kodunu ruby'den python'a dönüştürme

Python'da yeniyim ve aşağıdaki kodu tam olarak nasıl değiştireceğimi bilmiyorum.

yakut kodu:

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 

bu benim python kodu:

def extract_from_zipfile(inzipfile): 

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

o hiçbiri olarak değerini verir. Lütfen yardım.

cevap

2

Ruby sürümünde, txtfile son çıkartılan dosyaya başvurur.

Python

, sen zipfile.ZipFile.namelist kullanarak dosya listesini alabilirsiniz:

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

mükemmel çalıştı! Çok teşekkürler ! –

+0

@HarshaJasti, Rica ederim. Mutlu hack! – falsetru

İlgili konular