首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python-3.x从zip归档中读取CSV文件

用python-3.x从zip归档中读取CSV文件
EN

Stack Overflow用户
提问于 2018-05-09 18:20:23
回答 1查看 2.9K关注 0票数 4

我有一个压缩的存档,其中包含几个csv文件。

例如,假设myarchive.zip包含myfile1.csvmyfile2.csvmyfile3.csv

python 2.7中,我能够迭代地加载pandas中的所有myfiles

代码语言:javascript
复制
import pandas as pd
import zipfile

with zipfile.ZipFile(myarchive.zip, 'r') as zippedyear:
 for filename in ['myfile1.csv', 'myfile2.csv', 'myfile3.csv']:
     mydf = pd.read_csv(zippedyear.open(filename))

现在,使用Python 3执行相同的操作会引发错误

ParserError:迭代器应该返回字符串,而不是字节(您是以文本模式打开文件的吗?)

我在这里不知所措。知道有什么问题吗?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-09 18:38:02

确实很奇怪,因为您可以指定的唯一模式是r/w (字符模式)。

这里有一个解决办法:使用file.read读取文件,将数据加载到StringIO缓冲区,并将其传递给read_csv

代码语言:javascript
复制
from io import StringIO

with zipfile.ZipFile(myarchive.zip, 'r') as zippedyear:
    for filename in ['myfile1.csv', 'myfile2.csv', 'myfile3.csv']:
         with zippedyear.open(filename) as f:
             mydf = pd.read_csv(io.StringIO(f.read()))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50259792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档