首页 文章

在Python中将csv文件转换为管道分隔文件

提问于
浏览
0

我想用Python将逗号分隔的CSV文件转换为管道分隔文件:

这就是我正在阅读我的csv文件:

with open('C://Path//InputFile.csv') as fOpen:
    reader     =     csv.DictReader(fOpen)

    for row in reader:
        for (k, v) in row.items():
            columns[k].append(v)

c = csv.writer(open("C://Path//OutputFile.txt","wb"), delimiter="|")

我如何将其写为管道分隔文件?

3 回答

  • -1

    为Python 3调整martineau's answer .

    import csv
    
    with open('C:/Path/InputFile.csv') as fin:
        with open('C:/Path/OutputFile.txt', 'w', newline='') as fout:
            reader = csv.DictReader(fin, delimiter=',')
            writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
            writer.writeheader()
            writer.writerows(reader)
    

    添加了换行符参数以防止newline issues on Windows systems .

  • 1

    https://docs.python.org/2/library/csv.html for Python 2.x https://docs.python.org/3.3/library/csv.html for Python 3.x.

    这些页面解释了如何使用csv.writer .

    没有测试它,你的代码看起来语法有效 . 您需要做的就是添加一些 c.writerow('data','here') 来写入您的数据 .

  • 5

    这就是我认为你想要的:

    import csv
    
    with open('C:/Path/InputFile.csv', 'rb') as fin, \
         open('C:/Path/OutputFile.txt', 'wb') as fout:
        reader = csv.DictReader(fin)
        writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
        writer.writeheader()
        writer.writerows(reader)
    

相关问题