【问题标题】:Adding quotes and a tab to each element in a csv file为 csv 文件中的每个元素添加引号和选项卡
【发布时间】:2012-12-17 23:54:32
【问题描述】:

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

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

感谢任何帮助!

【问题讨论】:

    标签: python csv


    【解决方案1】:

    您正在做的是从一种 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

    【讨论】:

      猜你喜欢
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 2018-05-17
      • 2018-01-14
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      相关资源
      最近更新 更多