我必须使用python运行UNIX特定的命令,并且只捕获 "Test Failed: "行之后的行,我使用的方法是。
import os
def system_check(command: str):
stream = os.popen(command)
output = stream.readlines()
for line in output:
if line.strip().startswith('Test Failed: '):
for line in output:
print(line)
这将从头开始读取每一行,而不是只读取 "测试失败 "之后的行。如果我使用读取文件的方法,如 如何只读取文本文件中某一字符串后的行?它的工作原理。
好吧,这个问题的解决方法是正确的,因为用户想要的是特定字符串之后的所有行。
然而,对于你的问题,你可以尝试这样做,而不使用另一个循环。
for line_nr, line in enumerate(output):
if line.startswith('Test Failed: '):
print(output[line_nr+1])
Or:
`for line_nr, line in enumerate(output):
if 'Test Failed: ' in line:
print(output[line_nr+1])`
第二个问题, 为什么它要打印所有的行 (在 "测试失败 "之前的行), 也许它可能要用以下方法来解决 strip()
方法和输出的内容。