[我正在尝试使用Python CSV reader读取使用.tar.gz
从Python's tarfile library文件中提取的CSV文件。
我有这个:
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?)
我如何打开所说的文件(不提取文件然后打开它?)>
[我正在尝试使用Python CSV阅读器来读取我使用Python的tarfile库从.tar.gz文件中提取的CSV文件。我有这个:tarFile = tarfile.open(name = tarFileName,mode =“ r”)for ...
tarfile.extractfile
返回一个io.BufferedReader
对象,一个字节流,但是csv.reader
需要一个文本流。您可以使用io.TextIOWrapper
将字节流转换为文本流:
您需要向csv.reader
提供类似文件的对象。