我有一个TSV文件,包含有5列的行。我想将每一行的列写到单独文件中的行中。第一列是文件名。我尝试了下面的代码,但得到了以下错误。
filename, text, missspellings, uncertainty, weekgoal = row
ValueError: need more than 2 values to unpackimport csv
import sys
csv.field_size_limit(sys.maxsize)
with open("id_descr.tsv") as f:
reader = csv.reader(f, delimiter="\t")
fieldnames = next(reader)
for row in reader:
filename, text, missspellings, uncertainty, weekgoal = row
print('filename: {}'.format(filename))
print('text: {}'.format(text))
print('missspellings: {}'.format(missspellings))
print('uncertainty: {}'.format(uncertainty))
print('weekgoal: {}'.format(week goal))发布于 2015-06-28 18:30:57
至少有一行少于5列。不要将每一列分配给一个变量,只需写出所得到的任何列。与其打印值,不如根据第一列中的文件名将它们写入文件。您可以使用从标头读取的字段名,而不是再次将它们写入。
data_columns = next(reader)[1:] # skip first column header, the filename
for row in reader:
if not row:
continue # need at least filename
with open(row[0], 'w') as out: # make separate files
for name, value in zip(data_columns, row[1:]): # write columns except filename
out.write('{}: {}'.format(name, value))https://stackoverflow.com/questions/31103108
复制相似问题