【问题标题】:Can't get a newline when reading from CSV file and printing to Text file从 CSV 文件读取并打印到文本文件时无法获得换行符
【发布时间】:2017-05-26 23:14:47
【问题描述】:

我是编码新手,我尝试过自己解决这个问题,但无济于事! 我正在从 csv 文件中输入行并将它们写入文本文件。这些行有很多数据,但我只想要某些字段。我已经准备好编写我想要的字段,即 参考编号 12345,日期:20/5/17,事件类型:文本...

问题是所有的行都聚集在一起,它们之间没有线。理想情况下,我想分开两到三行,即

  1. 参考号 12345,日期:2017 年 5 月 20 日,事件类型:文本...

  2. 参考号 23117,日期:22/5/17,事件类型:文本...

  3. 参考号 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")

【问题讨论】:

    标签: python csv text newline


    【解决方案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()

    此外,如果您打算在不适用本世纪设计的。您可以从os 模块中获取当前平台的首选分隔符:os.linesep

    【讨论】:

      猜你喜欢
      • 2019-01-29
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-02
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多