0

当我运行 .exe 文件时,它会将内容打印到屏幕上。我不知道我想打印出的具体行,但有没有办法让python在“摘要”之后打印下一行?我知道它在打印时就在那里,然后我需要信息。谢谢!

4

3 回答 3

3

非常简单的 Python 解决方案:

def getSummary(s):
    return s[s.find('\nSummary'):]

这将返回摘要 的第一个实例之后的所有内容
如果您需要更具体,我建议您使用正则表达式。

于 2009-06-09T16:06:18.397 回答
2

实际上

program.exe | grep -A 1 Summary 

会做你的工作。

于 2009-06-09T16:02:18.443 回答
1

如果 exe 打印到屏幕,则将该输出通过管道传输到文本文件。我假设 exe 在 Windows 上,然后从命令行:

myapp.exe > 输出.txt

你相当健壮的python代码将是这样的:

try:
    f = open("output.txt", "r")
    lines = f.readlines()
    # Using enumerate gives a convenient index.
    for i, line in enumerate(lines) :
        if 'Summary' in line :
            print lines[i+1]
            break                # exit early
# Python throws this if 'Summary' was there but nothing is after it.
except IndexError, e :
    print "I didn't find a line after the Summary"
# You could catch other exceptions, as needed.
finally :
    f.close()
于 2009-06-10T13:13:27.363 回答