python - 将 zipfile 提取代码从 ruby​​ 转换为 python

标签 python ruby python-zipfile

我正在将代码从 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/

相关文章:

python - Holoviews 与 xarray 数据集 : How to scatter-plot two variables?

ruby - 如何合并两个哈希数组?

ruby-on-rails - 从没有 Ruby 的 Zurb 基础开始?

python - 使用 python zipfile 归档符号链接(symbolic link)

python - 如何将动态生成的 zip 文件发送到客户端

python - 为 GKE 身份验证生成的 token 缺少权限

python - pygame 的倒计时器

python - Flask-Login:关闭选项卡时如何强制 Firefox/Chrome 删除 session cookie?

ruby-on-rails - 如何验证服务器SSL证书?

python - 如何使用 Python 的 zipfile 模块对 ZIP 文件中的文件设置权限(属性)?