python - 无法在 python 中读取 zipfile 中的 csv
问题描述
我有一个文件夹,里面有几个 zipfile:
A.ZIP, B.ZIP, C.ZIP
它们都使用相同的密码保护,并且都有一个文件,我尝试读取所有 zipfile 以从中获取一个数据帧:
import glob
import pandas as pd
import zipfile
password = b'lordofrings' # Set password
zipfiles = glob.glob(r"C:\..\*.ZIP") # Get list of zip files
zipfiles
zfs = [(zipfile.ZipFile(f), f.split("\\")[-1].split(".")[0] + '.csv') for f in zipfiles]
# Get ZipFile object and csv file name for each zip file
dfs = [pd.read_csv(zf.open(filename, 'r', password), header=None, sep=';') for zf, filename in zfs]
但不知何故,最后一行出现错误:
KeyError:“存档中没有名为 'A.csv' 的项目”
我的错误是什么?
前面的步骤导致:
zfs
[(<zipfile.ZipFile filename='C:\\...\\A.ZIP' mode='r'>,
'A.csv'),
(<zipfile.ZipFile filename='C:\\...\\D.ZIP' mode='r'>,
'D.csv')]
解决方案
推荐阅读
- c# - 如何从函数管理到 sftp 的并发连接
- angularjs - 为什么异常后变量仍保持正确值时下拉列表无法在浏览器中显示值?
- sql - 态度是多对多。我的参与。PostgreSQL
- vue.js - 您可能需要适当的加载程序来处理此文件类型。...vuetify.min.css
- sublimetext3 - Sublime text 3 - 打开文件夹的快捷方式
- r - 跨列表应用 ifelse 语句
- django - /url/get() 处的 Django TypeError 缺少 1 个必需的位置参数
- regex - 车牌的正则表达式
- reactjs - 更新状态后解决承诺的正确方法?
- jquery - 确认取消后如何防止进一步的jquery脚本