使用python替换CSV文件中的字符/分隔符(双逗号)

使用python替换CSV文件中的字符/分隔符(双逗号),python,csv,Python,Csv,我有一个CSV文件,由于、、分隔符,每隔一列生成一个空列。我试图删除这些空列,但我不知道如何循环遍历这些行并将、、替换为、 如果您有任何帮助,可以通过这些行循环并替换分隔符,我们将不胜感激 谢谢 示例数据: Year,,2005-12,,2006-12,,2007-12,,2008-12,,2009-12,,2010-12,,2011-12,,2012-12,,2013-12,,2014-12,,TTM Data1,,100.00,,100.00,,100.00,,100.00,,100.00,

我有一个CSV文件,由于、、分隔符,每隔一列生成一个空列。我试图删除这些空列,但我不知道如何循环遍历这些行并将、、替换为、

如果您有任何帮助,可以通过这些行循环并替换分隔符,我们将不胜感激

谢谢

示例数据:

Year,,2005-12,,2006-12,,2007-12,,2008-12,,2009-12,,2010-12,,2011-12,,2012-12,,2013-12,,2014-12,,TTM
Data1,,100.00,,100.00,,100.00,,100.00,,100.00,,100.00,,100.00,,100.00,,100.00,,100.00,,100.00
    .... 

您可以使用pysed从命令行执行此操作:


如果您想通过python执行此操作,请使用replace方法

>>> s = 'year,,2015-12,,2006-12'
>>> print(s)
year,,2015-12,,2006-1
>>> new_s = s.replace(",,",",")
>>> print(new_s)
year,2015-12,2006-12
使用csv模块:


尽管输入csv文件非常大,但我认为这不是一个最佳解决方案。

能否在脚本中而不是在命令行中运行pysed?是的,但不像一行程序那么容易。请看这里:
>>> s = 'year,,2015-12,,2006-12'
>>> print(s)
year,,2015-12,,2006-1
>>> new_s = s.replace(",,",",")
>>> print(new_s)
year,2015-12,2006-12
import csv

input = open('in.csv', 'rb')
output = open('out.csv', 'wb')
writer = csv.writer(output)

for read in csv.reader(input):
    writer.writerow([x for x in read if x]) #Removes empty fields and writes into new file

input.close()
output.close()