2009-06-09 13 views
0

私は.exeファイルを実行すると、画面にものを印刷します。私はプリントアウトしたい場所の特定の行を知っていませんが、「要約」と書かれた行の次の行を印刷するための方法がありますか?私はそれが印刷され、私はすぐ後に情報が必要なときにそこにあることを知っています。ありがとう!Pythonと読書ライン

+0

サンプルコードを投稿できますか? PythonからEXEを実行しているのか、Pythonスクリプトに文字列を渡したいのか、それとも何か他のことをしているのかどうかわかりません。 –

+0

サンプルコードが表示されているのはわかりませんが、コマンドプロンプトでexeファイルを使用してディレクトリに移動して実行すると、画面に表示されるようになります。私は、要約の直後に行を印刷する方法を知っておく必要があります。 – Tyler

+1

EXEを実行しているPythonスクリプトはありますか? STDOUTから出力を取得し、それを以下に投稿した関数に渡すことができます。 –

答えて

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() 
関連する問題