gpt4 book ai didi

python - 如何在 Python 3.6 中的 tarfile 对象上使用 csv.DictReader?

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:08 26 4
gpt4 key购买 nike

这是我遇到的问题:

Error: iterator should return strings, not bytes (did you open the file in text mode?)

导致此问题的代码如下所示:

for fileinfo in tarfile.open(filename):
f = t.extractfile(fileinfo)
reader = csv.DictReader(f)
reader.fieldnames

问题似乎是 extractfile() 方法生成 io.BufferedReader这是一个非常基本的类似文件的对象,没有高级文本接口(interface)。

处理这个问题的好方法是什么?

我正在考虑将读取器中的字节解码为文本,但我需要保留流式传输,因为这些文件非常很大。代码库是在 Docker/Linux 上运行的 Python 3.6。

最佳答案

感谢 @Aran-Fey 和 @zwer 引导我找到 another StackOverflow question这回答了它。方法如下:

for fileinfo in tarfile.open(filename):
with t.extractfile(fileinfo) as f:
ft = codecs.getreader("utf-8")(f)
reader = csv.DictReader(ft)
reader.fieldnames

到目前为止这似乎有效。

关于python - 如何在 Python 3.6 中的 tarfile 对象上使用 csv.DictReader?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52616363/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com