2017-08-10 16 views
0

はのは、私のコードは次のようになりましょう文字列や文字列のリストに複数の印刷がある場合(例えば、どこからどこを取得するべきかなど)最後を取得するにはどのように、コードによって、印刷されたテキストのPython

+0

はあなたが正確に何でもう少し詳細に行くことができ、たとえば、文字列の最後のx量を取得することができあなたがしようとしている?場合によっては簡単な解決方法があるかもしれません。 – glibdud

+0

@glibdudだから私は多くの.pyファイルを持つ大きなコードを持っていて、コードのある時点でコンソールに表示されているものを取得したいと思っています。例えば:if string == 'string': do ...と比較する文字列はコードによって最後に印刷されたテキストです。 (例えば:コンソールにあるものを読むことができますか、ある時点で記録を開始し、別の時点で記録を開始して、結果として実行されたすべての印刷物を含む文字列のリストを得ることができます) –

答えて

1

印刷機能をオーバーロードして、次の行に沿って処理することができます。

import sys 

last_out = '' 


def print(message): 
    global last_out 
    last_out = message 
    sys.stdout.write(message+'\n') 

print('derp') 
print(last_out) 

出力:

あなたはまた、配列内のメッセージを保存し、

+0

これにより、これは、多くの印刷物を含む非常に大きなコードを持っているときにはあまり役に立ちません。これにより、コードが遅くなります。 –

+0

コンソールに書き込まれた内容を記録するstdoutのメソッドはありませんか? –

+1

機能の違いは何ですか?すべてのプリントがすでに記録されているので、すべてのプリントが記録されている場合は、コンソールを文字通り読み込んでいるのと同じですか?記録したいコードのビットが分かっている場合は、すべてのプリントを置き換える代わりにカスタムプリント機能を使用してください。@AnasBouayed – dhdavvie

関連する問題