将 zipfile 提取代码从 ruby 转换为 python
Converting zipfile extracting code from ruby to python
我正在将代码从 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
它returns 的值为none。
在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
我正在将代码从 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
它returns 的值为none。
在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