2017-02-14 237 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) 
相關問題