为csv文件中的每个元素添加引号和制表符

时间:2012-12-17 23:54:32

标签: python csv

如何使用python为csv文件中的每个元素添加引号和制表符?

例如,我想制作这个csv示例:

TitleA,TitleB,TitleC,TitleD,TitleE,....
Data1,Data2,<null>,Data4,<null>,....
DataX,<null>,<null>,DataY,<null>,....

看起来像这样:

"TitleA"    "TitleB"    "TitleC"    "TitleD"    "TitleE"   ....
"Data1"    "Data2"    "<null>"    "Data4"    "<null>"    ....
"DataX"    "<null>"    "<null>"    "DataY"    "<null>"    ....

我实际上是将csv文件转换为制表符分隔文件,其中所有元素都用单引号括起来......

有快速方法吗?

感谢任何帮助!

1 个答案:

答案 0 :(得分:10)

您正在做的是从一种CSV语言转换为另一种,对吗?

所以,你可以通过定义两个CSV方言,为另一个创建一个阅读器,为另一个创建一个编写器。

幸运的是,这些方言都很简单(输入甚至是默认值),你不需要做任何花哨的事情:

with open('in.csv', 'r') as infile, open('out.csv', 'w') as outfile:
    reader = csv.reader(infile)
    writer = csv.writer(outfile, delimiter='\t', quoting=csv.QUOTE_ALL)
    writer.writerows(reader)

在非常旧版本的Python中,您可能必须将最后一行替换为两个:

    for line in reader:
        writer.writerow(line)

有关详细信息,请参阅Dialects and Formatting Parameters