gpt4 book ai didi

python:使用带有从 tarfile 中提取的单个文件的 CSV 阅读器

转载 作者:行者123 更新时间:2023-12-04 10:15:43 25 4
gpt4 key购买 nike

我正在尝试使用 Python CSV reader读取我从 .tar.gz 中提取的 CSV 文件文件使用 Python's tarfile library .

我有这个:

tarFile = tarfile.open(name=tarFileName, mode="r")
for file in tarFile.getmembers():
tarredCSV = tarFile.extractfile(file)
reader = csv.reader(tarredCSV)
next(reader) # skip header
for row in reader:
if row[3] not in CSVRows.values():
CSVRows[row[3]] = row

tar 文件中的所有文件都是 CSV。

我在第一个文件上遇到异常。我在第一个 next 上收到此异常线:
_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?)

如何打开所述文件(不提取文件然后打开它)?

最佳答案

tarfile.extractfile返回 io.BufferedReader对象,一个字节流,还有 csv.reader需要一个文本流。您可以使用 io.TextIOWrapper将字节流转换为文本流:

import io

...

reader = csv.reader(io.TextIOWrapper(tarredCSV, encoding='utf-8'))

关于python:使用带有从 tarfile 中提取的单个文件的 CSV 阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61069941/

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