是否可以運行已保存爲變量的Python腳本?將Python腳本保存爲變量
x = 'print ("Hello, World!")'
??? run(x) ???
我希望能夠無需運行運行腳本:
python -c 'print ("Hello, World!")'
任何幫助將不勝感激。
是否可以運行已保存爲變量的Python腳本?將Python腳本保存爲變量
x = 'print ("Hello, World!")'
??? run(x) ???
我希望能夠無需運行運行腳本:
python -c 'print ("Hello, World!")'
任何幫助將不勝感激。
我相信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
字符串中的任何用戶輸入。有人可以輕鬆輸入將要執行的惡意語句。
參見:
根據你想要做什麼,它可能會幫助更多有另一個文件,並使用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!"
此外,您可以使用eval(expression[, globals[, locals]])
其中給一個符號表(ok了命名空間技術上字典)的提供了一個更直觀的方式要運行的字符串:)。
非常感謝你^^^ – Ritashugisha