2017-02-14 236 views
0

这与修剪csv文件进程有关。 我有一个mar格式的csv文件,有4列,但最后一列有太多(和未知数量)的逗号。Python:将第一个第n个匹配字母替换为另一个字母

我想将分隔符替换为另一个字符,例如“|” 例如,string =“a,b,c,d,e,f”为“a | b | c | d,e,f”

以下代码有效,但我喜欢找到更好有效的方式来处理大尺寸的txt文件。

sample_txt='a,b,c,d,e,f' 
temp=sample_txt.split(",") 
output_txt='|'.join(temp[0:3])+'|'+','.join(temp[3:]) 
+0

由于行数太多或行数太长,您的文字较大吗?如果你有很多短线,我怀疑你可以做得比你已经有的更好... – Julien

回答

1

Python有做到这一点,用str.replace最完美的方式:它决定了替代发生的最大数量

>>> sample_txt='a,b,c,d,e,f' 
>>> print(sample_txt.replace(',', '|', 3)) 
a|b|c|d,e,f 

str.replace有一个可选的第三个参数(或第四,如果算上self)。

+1

感谢您的好和整洁的解决方案。我应该再次检查一下python基本函数的细节。 – notilas

1
sample_txt='a,b,c,d,e,f' 
output_txt = sample_txt.replace(',', '|', 3) 
相关问题