【发布时间】:2015-06-28 22:51:08
【问题描述】:
我正在尝试将具有 500k 行的大型 .tsv 文件解析为每行的单个 .txt 文件。 我的脚本现在能够迭代到 id 11533,然后停止并打印出以下错误:
文件“goldfish.py”,第 18 行,在文件名中,文本 = prev_row
ValueError:解包的值太多
我的脚本是这样的:
import csv
import sys
csv.field_size_limit(sys.maxsize)
with open('id_descr.tsv', 'rb') as f:
reader = csv.reader(f, delimiter='\t')
fieldnames = next(reader)
prev_row = next(reader)
for row in reader:
if not row:
continue
if len(row) == 1 or not row[0].isdigit():
prev_row[-1] += row[0]
else:
filename, text = prev_row
filename = filename + ".txt"
with open(filename, 'wb') as output:
output.write(text)
output.write('\n')
prev_row = row
以下 .tsv 文件包含最后迭代的行 (id=11533) 和未解析的以下行(即脚本停止的点)https://www.dropbox.com/s/8mizthp8n0kduax/sample.tsv?dl=0
所以我的问题是:
有没有办法忽略这种错误, 或者我该如何更改脚本以避免此错误?
【问题讨论】:
-
使用
try...except块。通过异常跳过违规行。
标签: python