【发布时间】:2011-12-12 19:23:18
【问题描述】:
我有一个包含字符串列表的文本文件。
我想在 .csv 文件中搜索以这些字符串开头的行并将它们放入新的 .csv 文件中。
在本例中,文本文件名为“output.txt”,原始 .csv 为“input.csv”,新的 .csv 文件为“corrected.csv”。
代码:
import csv
file = open('output.txt')
while 1:
line = file.readline()
writer = csv.writer(open('corrected.csv','wb'), dialect = 'excel')
for row in csv.reader('input.csv'):
if not row[0].startswith(line):
writer.writerow(row)
writer.close()
if not line:
break
pass
错误:
Traceback (most recent call last):
File "C:\Python32\Sample Program\csvParser.py", line 9, in <module>
writer.writerow(row)
TypeError: 'str' does not support the buffer interface`
新错误:
Traceback (most recent call last):
File "C:\Python32\Sample Program\csvParser.py", line 12, in <module>
for row in reader:
_csv.Error: line contains NULL byte
问题是 CSV 文件是用制表符而不是逗号保存的,现在的新问题如下:
Traceback (most recent call last):
File "C:\Python32\Sample Program\csvParser.py", line 13, in <module>
if row[0] not in lines:
IndexError: list index out of range
CSV 文件有 500 多个数据条目...这有什么不同吗?
【问题讨论】:
-
你能粘贴整个回溯吗?
-
row[0]永远不可能startwith(line)因为line总是有一个换行符而row[0]永远不会有一个。