使用Python 2.7
情况: 我有一些Python代码(用户提交的)我需要在我的服务器上运行(在Django上运行)并返回结果。 (不要担心安全风险,首先需要通过安全检查点。)
假设python代码存储在变量newCode
中我执行以下操作:
code = compile(newCode, '<string>', 'exec')
exec code
现在假设newCode片段是:
a = raw_input('wa ')
print a
此时服务器将冻结。
任何程序的输入都存储在数据库中。它应该从数据库读取数据并在调用input或raw_input时插入程序。输入过程应该是自动化的。
在运行exec之前以任何方式将输入流式传输到stdin并让它在执行期间读取它?
Pleeaase帮助!提前致谢。 :)
答案 0 :(得分:0)
将sys.stdin
替换为包含要阅读的文字的StringIO
。