从 Python3 中的 .zip 文件中提取和读取 [重复]

Posted

技术标签:

【中文标题】从 Python3 中的 .zip 文件中提取和读取 [重复]【英文标题】:Extract and read from .zip file in Python3 [duplicate] 【发布时间】:2018-02-15 23:35:33 【问题描述】:

我有一个 zip 文件的 url 链接。我想下载 zip 文件。然后我想列出 zip 文件中所有文件的名称。其中之一是 .csv 文件。我也想从 csv 文件中读取。

谁能告诉我如何在 python3 中做到这一点?

【问题讨论】:

不是ZipFile? 我什至卡在第一步。我使用 'zf = zipfile.ZipFile('files.grouplens.org/datasets/movielens/ml-latest-small.zip', 'r')' 并收到错误 OSError: [Errno 22] Invalid argument: 'files.grouplens.org/datasets/movielens/ml-latest-small.zip' 欢迎来到 SO。不幸的是,这不是一个讨论论坛或教程。请花时间阅读How to Ask 和该页面上的其他链接。花一些时间与the Tutorial 练习示例。它将让您了解 Python 提供的帮助您解决问题的工具。 “Can someone help me?” not an actual question?. @mina 您提供的路径是格式错误的网址。它应该是http://files.grouplens.org/datasets/movielens/ml-latest-small.zip。我怀疑ZipFile 是否真的会下载文件(不确定文档是否会告诉你)。您需要使用其他功能将文件下载到本地磁盘,然后在保存的文件上使用ZipFile 【参考方案1】: urllib.request.retrieve 下载 zip 文件 https://docs.python.org/3/library/urllib.request.html zipfile模块解压文件https://docs.python.org/3/library/zipfile.html 在 glob 模块https://docs.python.org/3/library/glob.html 的路径中查找 csv 文件 终于使用csv模块 https://docs.python.org/3/library/csv.html

【讨论】:

感谢您的回复。我是 Python 的新手,这是我编写的第一个代码。您的链接非常密集。我有点困惑如何使用它们。 @Mina 如果您发现文档有点困难,我建议您在线搜索每个步骤的简单示例example,您会发现这些通常会让您回到 SO。这个答案是一个“严厉的爱”的答案,想法是你采取摆在你面前的步骤,并发现如何依次完成每一个步骤。与获得摆在您面前的完整答案相比,您从中获得的收益要多得多,因此您可以剪切和粘贴它,而不会从中学到任何东西。 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review 感谢@Graham 提供的信息

以上是关于从 Python3 中的 .zip 文件中提取和读取 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

怎么从zip里提取文件 Python

从 zip 文件中提取子文件

如何在zip中的文件夹中提取文件?

从 zip 文件中提取文件并保留 mod 日期?

Linux Bash - 修改从标准输出中提取的文本

从 Zip 文件中的文件中读取内容