【问题标题】:Download zip file locally to tempfile, extract files to tempfile, and list the files将zip文件本地下载到tempfile,将文件解压到tempfile,并列出文件
【发布时间】:2019-04-17 02:09:04
【问题描述】:

我正在尝试重新使用 python,但我不确定从哪里开始,但我想在本地下载一个 zip 文件到 temp,解压缩文件,然后列出文件(这是 99.99% 的时间csv 文件)。我想列出这些文件,以便我可以根据逻辑进一步处理其中一个文件,并自动删除临时目录。

我可以在 R 中相当简洁地完成上述大部分操作,但我的要求是将这个想法映射到 python 和我最初的 Google 搜索中,我发现的解决方案似乎并不简单,也不完全符合我的要求为了。

任何帮助将不胜感激。

【问题讨论】:

标签: python-3.x zipfile


【解决方案1】:

我们首先通过requests下载文件

import requests

results = requests.get('<url_to_zip>')
with open('/tmp/zip_folder.zip', 'wb') as f:
    f.write(results.content)

然后我们使用 zipfile 将 zip 文件解压缩到 /tmp

import zipfile
file = zipfile.ZipFile('/tmp/zip_folder.zip')
file.extractall(path='/tmp')

然后我们列出文件。

files = os.listdir('/tmp/zip_folder')
for file in files:
    if 'csv' in file:
        print(file)

【讨论】:

  • 这太棒了。在第一个块中,我假设它应该是f.write(results.content)。也许这超出了范围,但是在同一个块中,外部 zip 文件是在本地写入的,它也可以在临时文件中吗?
  • 再次感谢。最后一部分是查找 csv 文件,但我可以使用 import glob; files = glob.glob(path + "*csv*") where path = "/tmp/" 做到这一点。
  • python 中的 tempfile 是一个实际的东西,而不是一个想法。您在这里所做的是下载到“临时文件”。谷歌搜索解压缩到临时文件,错误地将我带到这里。
猜你喜欢
  • 1970-01-01
  • 2021-03-07
  • 1970-01-01
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多