我是python的新手,但是我在阅读包含以“|”分隔的数据的文本文件时遇到了问题作为分隔符。我如何将文件分成CSV格式的列。
data
此代码将 | 删除为空白,但现在所有数据都只在一列中。我该如何正确格式化? 我提前感谢您的帮助。
答案 0 :(得分:5)
csv
module允许您使用几乎任意的分隔符读取csv文件。
with open(my_file_name, 'r', newline='') as infile:
for line in csv.reader(infile, delimiter='|'):
# do stuff
如果您确实要重新格式化文件,可以直接使用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)
请注意,您的方法不起作用,因为您删除分隔符而不是替换它。 data.replace("|","")
会将每个|
替换为空字符串,即"foo|bar"
变为"foobar"
。您必须使用 new 替换旧分隔符,例如data.replace("|", ",")
。
答案 1 :(得分:1)
您的代码最简单的方法是替换“|”用“,”而不是删除“|”
data = data.replace("|", ",")
答案 2 :(得分:1)
您正在导入csv
模块,但尚未使用它。利用csv.reader
with open(my_file_name, 'r') as infile, open(cleaned_file, 'w') as outfile:
reader = csv.reader(infile, delimiter='|')