我写了一个脚本,它点击一个 URL 并下载一个 zip 文件,解压它。现在我在解析解压后得到的 CSV 文件时遇到问题。
import csv
from requests import get
from io import BytesIO
from zipfile import ZipFile
request = get('https://example.com/some_file.zip')
zip_file = ZipFile(BytesIO(request.content))
files = zip_file.namelist()
with open(files[0], 'r') as csvfile:
csvreader = csv.reader(csvfile)
for row in csvreader:
print(row)
最佳答案
当您执行 files = zip_file.namelist()
时,您只是列出了 zip 存档中的文件名;这些文件尚未从 zip 中提取,您不能像您正在做的那样将它们作为 本地 文件打开
。
您可以使用 ZipFile.open
直接从 zip 文件中读取数据流.
所以这应该可行:
zip_file = ZipFile(BytesIO(request.content))
files = zip_file.namelist()
with zip_file.open(files[0], 'r') as csvfile:
csvreader = csv.reader(csvfile)
...
关于python - 如何在python中下载zip文件并从中解析csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49515617/