正则表达式:在字符串Python之间替换逗号

时间:2018-03-23 06:56:06

标签: python regex csv

我有一个行列表,如

共有10列,但csv使用tabula生成了9列

ELECSERV FINALED(字符串值可能会更改)这两列生成为一个我希望用逗号分隔的两个不同列,然后我在行尾删除了逗号。

D12-1234,041-260-32,714 EL DFRO ST,ELECSERV FINALED,0,$0.00,10/15/2009 ,CONSTRUCTION,Electrical service upgrade from 100 amp to 200 amp (same location),
D12-1235,037-071-07,127 S HORN DR,ELECSERV ISSUED,0,$0.00,10/22/2009 ,"AGANS & ELLIOTT, INC, A&E ELECTRIC",Service upgrade (same location),

输出应该是这样的:

D12-1234,041-260-32,714 EL DFRO ST,ELECSERV,FINALED,0,$0.00,10/15/2009 ,CONSTRUCTION,Electrical service upgrade from 100 amp to 200 amp (same location)
D12-1235,037-071-07,127 S HORN DR,ELECSERV,ISSUED,0,$0.00,10/22/2009 ,"AGANS & ELLIOTT, INC, A&E ELECTRIC",Service upgrade (same location)

2 个答案:

答案 0 :(得分:0)

您可以先将分隔线拆分为,

cols = line.split(',')

现在更改结果数组中的第4个元素,并将替换为,

cols[3] = string.replace(cols[3],' ',',')

使用rstrip

加入数组以形成字符串并删除最后一个逗号
','.join(cols).rstrip(',')

编辑1:

请参考以下内容,它为我工作。

line = 'D12-1234,041-260-32,714 EL DFRO ST,ELECSERV FINALED,0,$0.00,10/15/2009 ,CONSTRUCTION,Electrical service upgrade from 100 amp to 200 amp (same location),'
cols = line.split(',')
cols[3] = str.replace(cols[3],' ',',')
print(','.join(cols).rstrip(','))

答案 1 :(得分:0)

我希望这是你想要的,也要确保最后一行有\ n才能正常工作,你也可以添加一个if语句来检查最后一个字符是\n

with open("t.csv",'r') as myfile ,open ('out.csv','w') as outputfile:
  for line in myfile:
    outputfile.write(line[:-2]+"\n")

编辑:最后,您可以将结果写入旧文件