【问题标题】:reading a TXT file into a CSV file for writing without importing the CSV module [duplicate]在不导入 CSV 模块的情况下将 TXT 文件读入 CSV 文件进行写入 [重复]
【发布时间】:2017-03-27 17:48:51
【问题描述】:

我编写这个程序是为了读取一个文本文件,并将内容逐行放入另一个 cvs 文件中进行写入。但是,我想打开第一个txt文件进行读取,打开另一个txt文件进行写入,然后将txt文件1的内容复制到txt文件2中,不带逗号。例如,一行“1, 2, hello”应该读作“1 2 hello”。我目前有它打开一个 csv 文件进行写入,但我希望它打开一个 txt 文件进行写入。

import csv

with open('texfile.txt', 'r') as in_file:
    stripped = (line.strip() for line in in_file)
    lines = (line.split(",") for line in stripped if line)
    with open('csvfile.csv', 'w') as out_file:
        writer = csv.writer(out_file)
        writer.writerows(lines)

【问题讨论】:

  • 你可以查看 csv 模块的源代码,看看它做了什么。
  • 为什么不想导入csv 模块?不导入模块就不能使用csv.writer
  • “我想这样做而不在我的程序中导入 CSV 函数” - 这是个坏主意。
  • @KenWhite 已解决问题。我的意思是我目前正在将它打开到一个 CSV 文件中进行写入,但我想做同样的事情,除了在一个 txt 文件中打开它。
  • 您的意思是要在文本编辑器中打开 CSV 文件吗?

标签: python python-3.x csv


【解决方案1】:

假设您的输入 txt 文件可以安全地通过简单的“.split()”函数进行解析(正如您指定的那样),写入基本 CSV 文件应该很简单:

with open('csvfile.csv', 'w') as out_file:
  for line in lines:
    out_file.write(" ".join(line) + "\n")

注意:最好还是使用 CSV 模块。

【讨论】:

  • 这将添加额外的空格。我认为 OP 可能只是想要with open(a) as i, open(b, 'w') as o: b.write(a.read().replace(',', ''))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 1970-01-01
  • 2011-06-07
  • 1970-01-01
  • 2021-09-21
  • 1970-01-01
  • 2017-02-04
相关资源
最近更新 更多