繁体   English   中英

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

[英]Regex: replace comma in between a string Python

我有一个行列表,例如

共10列,但使用制表符生成的csv 则为 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)

您可以首先使用定界符分隔行,

cols = line.split(',')

现在更改结果数组中的第四个元素并替换 通过,

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(','))

我希望这是您想要的,还要确保最后一行具有\\ n才能正常工作,您还可以添加if语句来检查last char是否为\\n

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM