我是编码新手,并尝试自己解决这个问题,但无济于事! 我从csv文件中输入行并将它们写入文本文件。行有很多数据,但我只想要某些字段。我刚刚写了我想要的字段,即参考编号12345,日期:20/5/17,事件类型:文字...... 等
问题是所有行都聚集在一起,它们之间没有任何行。理想情况下,我想要两三行,即
参考编号12345,日期:20/5/17,事件类型:文字......
参考编号23117,日期:22/5/17,事件类型:文字......
参考编号23117,日期:22/5/17,事件类型:文字......
最终,我希望能够只编写包含特定关键字的行,即按事件类型或特定日期。如果我能在行之间获得换行符,那么我会很高兴,因此它很容易阅读。 我几乎尝试过所有事情。 " \ n"似乎只是在文本文件中打印而不是创建一个新行。
这是我使用的代码,它可能有点粗糙,但我通过反复试验得到了这一点。
import csv
import os
with open("raw.csv", "r") as f:
r = csv.reader(f)
for row in r:
r = [row for row in r]
r = [row[4] + "---" + row[1] + "---" + row[6] for row in r]
with open("txtfile.txt", "w") as output:
output.write(str(r)+"\r\n")
print("Written successfully")
答案 0 :(得分:1)
您必须在每行之后打印一个新行,而不是在整个字符串之后。从:
开始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]))
从那里拿走它。有关文本文件的其他格式,请查看str.format()
。
此外,您可能希望为您的平台使用“正确”的行分隔符(如上所述,对于所有正常情况,大致意味着\n
,如果您打算阅读文本,则为\r\n
for Windows)应用程序中的文件不是本世纪设计的。您可以从os
模块中获取当前平台的首选分隔符:os.linesep
。