【发布时间】:2017-10-30 21:56:27
【问题描述】:
编辑:我认为问题与 csv 文件正文中的空白行有关。我尝试了许多修复但无济于事。令人沮丧,因为这段代码最初是有效的,如果有人有任何想法让我继续我的生活,我将不胜感激:)
我有这个代码工作。它将从 csv 文件输入并将特定列输出到文本文件。我试图让它只打印row[32] 包含文本的行。自从我开始弄乱它以来,它根本不起作用。
它现在给了我错误Index error: list out of range。 csv 文件包含许多列和行,因此绝对不会超出范围。看着它,我眼睛瞪得滚圆,以至于我再也看不到树上的木头了。我可能完全搞砸了,也可能只是一些小问题。
import csv
import os
with open("raw.csv", "r") as f, open("txtfile.txt", "w") as output:
r = csv.reader(f)
for row in r:
output.write("{} --- {} --- {}\n".format(row[4], row[1], row[6]))
with open("txtfile.txt", "w") as output:
output.write(str(r)+"\r\n")
print("Written successfully")
with open("raw.csv", "r") as f, open("txtfile.txt", "w") as output:
r = csv.reader(f)
for row in r:
if "Active" in row[0] and "Text1"in row[1] or "Text2" in row[1] or "Burglary" in row[1]:
output.write("{} - {} - {}\n".format(row[4], row[6], row[1])
【问题讨论】:
-
使用
row[]时,[]内的值指的是列标题。所以row[6]打印第 6 列中每一行的值,而不是文件中第 6 行的值。 -
我就是这么想的,前几天那部分还在工作