我是python的新手,但是我在阅读包含以"|"分隔的数据的文本文件时遇到了问题 作为分隔符.我如何将文件分成CSV格式的列.
import csv
my_file_name = "NVG.txt"
cleaned_file = "cleanNVG.csv"
with open(my_file_name, 'r') as infile, open(cleaned_file, 'w') as outfile:
data = infile.read()
data = data.replace("|","")
outfile.write(data)
Run Code Online (Sandbox Code Playgroud)
这段代码摆脱了| 空白但所有数据现在只在一列中.我该如何正确格式化?我提前感谢您的帮助.
该csv模块允许您使用几乎任意的分隔符读取csv文件.
with open(my_file_name, 'r', newline='') as infile:
for line in csv.reader(infile, delimiter='|'):
# do stuff
Run Code Online (Sandbox Code Playgroud)
如果您真的想重新格式化文件,可以csv.writer直接使用:
with open(my_file_name, 'r', newline='') as infile, open(cleaned_file, 'w', newline='') as outfile:
writer = csv.writer(outfile)
for line in csv.reader(infile, delimiter='|'):
writer.writerow(line)
Run Code Online (Sandbox Code Playgroud)
请注意,您的方法不起作用,因为您删除了分隔符而不是替换它.data.replace("|","")将用|空字符串替换每个字符串,即"foo|bar"变为"foobar".您必须用新的分隔符替换旧分隔符,例如data.replace("|", ",").