我正在将代码从 ruby 转换为 python,以提取 zip 文件的内容。
我是 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
它返回无值。
最佳答案
在 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
关于python - 将 zipfile 提取代码从 ruby 转换为 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36124997/