如何使用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文件转换为制表符分隔文件,其中所有元素都用单引号括起来......
有快速方法吗?
感谢任何帮助!
答案 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。