免责声明:我对 python 还很陌生!
如果我想要一个文件的所有行,直到(编辑:并包括)包含一些字符串 stopterm
的行,有没有办法为它使用列表语法?我希望会有类似的东西:
usefullines = [line for line in file until stopterm in line]
现在,我有
usefullines = []
for line in file:
usefullines.append(line)
if stopterm in line:
break
这不是世界末日,但由于 Python 语法的其余部分非常简单,我希望有 1 个想法-> 1 个 Python 行映射。
最佳答案
from itertools import takewhile
usefullines = takewhile(lambda x: not re.search(stopterm, x), lines)
from itertools import takewhile
usefullines = takewhile(lambda x: stopterm not in x, lines)
这是一种保持 stopterm 行的方法:
def useful_lines(lines, stopterm):
for line in lines:
if stopterm in line:
yield line
break
yield line
usefullines = useful_lines(lines, stopterm)
# or...
for line in useful_lines(lines, stopterm):
# ... do stuff
pass
关于Python:项目的项目直到项目中的停止项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/337223/