首页 > 解决方案 > 我的自定义方言输出在处理 csv 文件时未使用双引号

问题描述

我正在使用 Python 3.6.6。我有以下代码,根据我阅读的内容和我看到的示例,这似乎应该用双引号引用所有内容。但是我在输出中只看到单引号:

import os
import csv

csv.register_dialect('pipes', quoting=csv.QUOTE_ALL, delimiter='|', quotechar = '"',)
with open("C:\\test3\\pymorsel\\fixcsv\\sourcefile.psv", 'r') as f:
    sourceFile = csv.reader(f, dialect='pipes')
    for row in sourceFile:
        print(row)

我的输入文件:

Reading|Make|Model|Type|Value
Reading 0|Toyota|"Previa"|distance|19.83942
Reading 1|Dodge|Intrepid, test|distance|31.28257

我的输出:

['Reading', 'Make', 'Model', 'Type', 'Value']
['Reading 0', 'Toyota', 'Previa', 'distance', '19.83942']
['Reading 1', 'Dodge', 'Intrepid, test', 'distance', '31.28257']

标签: pythonpython-3.xcsv

解决方案


您正在打印 Python 对象。

您应该使用csv.writer.writerowwriter 对象函数来编写输出。

例如:

    sourceFile = csv.reader(f, dialect='pipes')
    w = csv.writer(sys.stdout)
    for row in sourceFile:
        w.writerow(row)

推荐阅读