Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在字符出现后删除行的剩余部分_Python_Python 2.7 - Fatal编程技术网

Python 在字符出现后删除行的剩余部分

Python 在字符出现后删除行的剩余部分,python,python-2.7,Python,Python 2.7,我有一个几千行的文本文件。我想做的是删除一行中第一个出现的“|”,以及随后该行中的所有内容。我对python相当陌生,不确定人们会怎么做。我想到了重新搜索,但我不知道如何只删除一行的一部分。看看这个: >>> s = 'abc|123|xyz' >>> s 'abc|123|xyz' >>> s.split('|', 1)[0] 'abc' 或者,你也可以这样做 >>> s[s.index('|')+1:] '123|xy

我有一个几千行的文本文件。我想做的是删除一行中第一个出现的“|”,以及随后该行中的所有内容。我对python相当陌生,不确定人们会怎么做。我想到了重新搜索,但我不知道如何只删除一行的一部分。

看看这个:

>>> 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
作为可选的第二个参数传递给
split()
,这样,一旦找到第一个分隔符,它就不会麻烦寻找更多的分隔符。