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

sco*_*880 2 python csv

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

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

TitleA,TitleB,TitleC,TitleD,TitleE,....
Data1,Data2,<null>,Data4,<null>,....
DataX,<null>,<null>,DataY,<null>,....
Run Code Online (Sandbox Code Playgroud)

看起来像这样:

"TitleA"    "TitleB"    "TitleC"    "TitleD"    "TitleE"   ....
"Data1"    "Data2"    "<null>"    "Data4"    "<null>"    ....
"DataX"    "<null>"    "<null>"    "DataY"    "<null>"    ....
Run Code Online (Sandbox Code Playgroud)

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

有没有快速的方法来做到这一点?

任何帮助表示赞赏!

aba*_*ert 11

你正在做的是从一种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)
Run Code Online (Sandbox Code Playgroud)

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

    for line in reader:
        writer.writerow(line)
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅方言和格式参数.