Python |分隔文本文件为csv格式

时间:2016-10-04 14:07:36

标签: python python-3.x

我是python的新手,但是我在阅读包含以“|”分隔的数据的文本文件时遇到了问题作为分隔符。我如何将文件分成CSV格式的列。

data

此代码将 | 删除为空白,但现在所有数据都只在一列中。我该如何正确格式化? 我提前感谢您的帮助。

3 个答案:

答案 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='|')
相关问题