0

私は次のことをしたいです。スクリプトには、(変数に保存された) 文字列としていくつかの Python コードがあり、そのコードを実行することは可能ですか?

その文字列をファイルに書き込んで実行するという 1 つの方法は知っていますが、それはしたくありません。余分なファイルを作成せずに実行することはできますか?

例を次に示します。

私のpythonファイルに次のコンテンツがあると仮定しましょう

#this is a main python file
content = ''' print 'hello!'
                   print 'this is from sub python code' '''
print 'from main python'

コンテンツ文字列には Python コードがあり、それを実行したい。出来ますか ?

私がはっきりしていることを願っています。ありがとうございました !

4

4 に答える 4

2

前もって言っておきますが、これはひどい考えであり、文字列のソースによっては重大なセキュリティ リスクになります。

邪魔にならないその免責事項、pythonには、pythonコードを含む文字列を実行するexec関数があります。例えば:

exec("print 2+2")

編集:私はもともと私の答えで eval を使用しました。これは個々の式を評価するのに役立ちますが、 exec は文字列内の任意の python コードのより一般的な実行に使用できます。

関連ドキュメント:

http://docs.python.org/2/reference/simple_stmts.html#exec

http://docs.python.org/2/library/functions.html#eval

于 2013-01-19T04:19:46.110 に答える
0

よく使用できますeval

eval(content)

そして、それはあなたが望むことをしますが、特に他の誰かがコンテンツを制御している場合はお勧めしcontentません.eval

于 2013-01-19T04:20:06.450 に答える
0

実行する必要があるドキュメントに従って、exec メソッドを試しましたか

exec "print 'Hello, World!'"

于 2013-01-19T04:21:17.800 に答える