我需要能够读取 .txt 文件并将其中的数据输出到 CSV 文件中的代码。 .txt 文件的数据格式如下:
Jeff/Terry/01-10-2020/1-2
+Tom/02-10-2020
-Jeff/03-10-2020
我需要将数据写入一个 CSV 文件中,每次遇到“/”时,字符串都会被拆分和分隔。所以 CSV 文件看起来像这样:
A 列 | B列 | C 列 | D 列 |
---|---|---|---|
杰夫 | 特里 | 01-10-2020 | 1-2 |
+汤姆 | 02-10-2020 | ||
-杰夫 | 03-10-2020 |
此外,我还需要代码来将这个 CSV 文件数据写回另一个相同格式的 .txt 文件,用“/”分隔单元格的数据。
我目前有这个:
import csv
with open ("data.txt", "r") as in_file:
stripped = (line.strip() for line in in_file)
lines = (line.split("/") for line in stripped if line
open ("data.csv", "w") as out_file:
writer = csv.writer(out_file)
writer.writerow(('first', 'second'))
writer.writerows(lines)
目前它与我需要的功能相去甚远,而且在最后一行 open ("data.csv", "w") as out_file:
的“o”打开时,它也给了我语法错误。
答案 0 :(得分:1)
这里有一些语法错误。
lines = (line.split("/") for line in stripped if line)
。with
开头:with open("data.csv", "w") as out_file:
。with
块之外。尝试以下操作(请参阅 documentation):
import csv
with open("data.txt", "r", newline='') as in_file:
lines = list(csv.reader(in_file, delimiter="/"))
with open("data.csv", "w", newline='') as out_file:
writer = csv.writer(out_file, delimiter="/")
writer.writerow(('first', 'second'))
writer.writerows(lines)