2013-08-01 60 views
1

是否可以運行已保存爲變量的Python腳本?將Python腳本保存爲變量

x = 'print ("Hello, World!")' 
??? run(x) ??? 

我希望能夠無需運行運行腳本:

python -c 'print ("Hello, World!")' 

任何幫助將不勝感激。

回答

1

我相信exec聲明是你正在尋找的。

>>> cmd = 'print "Hello, world!"' 
>>> exec cmd 
Hello, world! 
>>> 
>>> cmd = """ 
... x = 4 
... y = 3 
... z = x*y + 1 
... print 'z = {0}'.format(z) 
... """ 
>>> 
>>> exec cmd 
z = 13 

請採取適當的注意事項,如果你包括你要exec字符串中的任何用戶輸入。有人可以輕鬆輸入將要執行的惡意語句。

參見:

+0

非常感謝你^^^ – Ritashugisha

0

根據你想要做什麼,它可能會幫助更多有另一個文件,並使用Subprocess.Popen打開它。一個例子是異步進程,後端數據庫或應用程序的另一個實例,以允許在多個進程之間使用乾淨的API :)。

從子文檔:

">>> import shlex, subprocess 
>>> command_line = raw_input() 
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo '$MONEY'" 
>>> args = shlex.split(command_line) 
>>> print args 
['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"] 
>>> p = subprocess.Popen(args) # Success!" 

Subprocess Docs

此外,您可以使用eval(expression[, globals[, locals]])其中給一個符號表(ok了命名空間技術上字典)的提供了一個更直觀的方式要運行的字符串:)。

相關問題