2016-05-24 15 views
-1

私はeval()を使用しています。出力を印刷する必要があります。たとえば、eval('1+1')は2を返しますが、eval('print('hello')')Noneを返します。 Python Shellの出力をどのように保存できますか?Pythonの出力を文字列に格納する

+6

なぜあなたは 'EVA()'リットルを使用していますか? print()に戻り値がないため、 'None'と評価されます。あなたは何をしようとしているのですか? – IanAuld

+0

@TessellatingHeckler evalと外部コマンドは関連していません。 –

+2

これは古典的な[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)です。 'eval()'を使うのではなく、直面している問題に対する適切な解決策を見つけ出すならば、この新しい問題を解決することはできません。解決しようとしている元の問題を教えてください。 – TigerhawkT3

答えて

0

あなたが本当にファイルを、変数に標準出力をリダイレクト変数にはStringIOを使用するか、使用したい場合は

from io import StringIO 
# from StringIO import StringIO -- python 2.x 
import sys 
my_out = StringIO() 
sys.stdout = my_out 
print("hello") # now stored in my_out 

または

my_file = open('my_file.txt', 'w') 
sys.stdout = my_file 
print("hello") # now written to my_file.txt 
+0

これは間違いありませんが、多くはありません。私がリンクしている複製はより完全な答えを持っています。 –

+0

'StringIO'というモジュールはありません アイデア? –

+0

sys.stdoutを読むことはできますか?もしそうなら、私の問題は解決されます。 –

関連する問題