2

如何使用 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 文件转换为一个制表符分隔的文件,其中所有元素都用单引号括起来......

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

任何帮助表示赞赏!

4

1 回答 1

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)

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

    for line in reader:
        writer.writerow(line)

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

于 2012-12-17T23:57:06.300 回答