2009-06-09 76 views
0

当我运行一个.exe文件时,它将东西输出到屏幕上。我不知道我想要打印的具体行,但有没有办法让我可以在显示“摘要”后打印下一行?我知道它在打印时就在那里,我需要后面的信息。谢谢!Python和阅读行

+0

你可以发布一些示例代码吗?我不知道你是从Python运行一个EXE还是只是想将一个字符串传递给一个Python脚本,或者你正在做其他事情。 – 2009-06-09 16:01:37

回答

3

真正简单的Python的解决方案:

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

摘要
如果您需要更具体的初审后返回的一切,我建议正则表达式。

2

实际上

program.exe | grep -A 1 Summary 

会做你的工作。

1

如果exe打印到屏幕上,然后将该输出传输到文本文件。我假设的exe是Windows,然后在命令行:

程序myapp.exe> output.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()