0
使用Python 2.7stdin中的數據流;防止提示用戶輸入
情況: 我有一些Python代碼(用戶提交的),我需要我的服務器上執行(Django上運行),並返回結果。 (不要擔心安全風險,它需要首先通過安全檢查點)。
假設Python代碼存儲在變量newCode
我做到以下幾點:
code = compile(newCode, '<string>', 'exec')
exec code
現在假設newCode件是:
a = raw_input('wa ')
print a
服務器將凍結在這點。
任何程序的輸入都存儲在數據庫中。它應該從數據庫中讀取數據,並在調用input或raw_input時插入程序。輸入過程應該是自動的。
在運行exec之前將輸入流式傳輸到stdin並在執行期間讀取它的任何方式?
Pleeaase help!提前致謝。 :)
能否請您給我一個例子,文字
StringIO
? – 2012-03-15 13:16:38'new_input = StringIO.StringIO('some input'); sys.stdin = new_input' – 2012-03-15 13:18:13
謝謝,工作完美! :) – 2012-03-15 14:36:28