2013-03-18 103 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

相关问题