2013-03-18 34 views
2

我有一個包含數千行的文本文件。我想要做的是刪除'|'的第一次出現在一行中以及隨後的所有行中。我對Python非常陌生,我不確定如何去做這件事。 re.search想起來,但我不知道如何只刪除一部分線。刪除字符出現後的其餘部分

+0

通過 「所有在下面那行」 你的意思是第一後一切'|'? – arshajii 2013-03-18 00:42:33

回答

3

看看這個:

>>> s = 'abc|123|xyz' 
>>> s 
'abc|123|xyz' 
>>> s.split('|', 1)[0] 
'abc' 

或者,你可以做

>>> s[s.index('|')+1:] 
'123|xyz' 

它看起來像第二種方法是稍快:

>>> from timeit import timeit as time 
>>> time("s.split('|', 1)[0]", "s = 'abc|123|xyz'") 
0.39399194717407227 
>>> time("s[s.index('|')+1:]", "s = 'abc|123|xyz'") 
0.2868010997772217 

相對埃文特文檔:

+1

您應該將'1'作爲可選的第二個參數傳遞給'split()',這樣一旦找到第一個分隔符,它就不會再費心尋找更多的分隔符。 – 2013-03-18 00:44:11

+0

@JohnZwinck很好的電話,謝謝。 – arshajii 2013-03-18 00:44:39

相關問題