如何在Python中接收用户输入的命令并执行得到对应输出?
Python动态执行用户输入代码的实现方案
结论
该需求完全可以在Python中实现,无需更换其他编程语言。你之前调研的shell命令执行方案不符合需求,是因为这类方案针对的是执行系统shell指令,而你的需求是执行用户输入的Python代码片段,使用Python内置的动态执行函数即可实现。
实现代码
针对你给出的示例,修改后代码如下:
a = input('Enter something:') # 示例输入为 print('Hello World') # 调用exec执行输入的Python代码 exec(a)
运行上述代码后,输入print('Hello World')会直接输出Hello World,和你预期的效果完全一致。
补充说明
- 如果你需要执行的是有返回值的表达式(例如
1+2*3),可以使用eval()函数获取执行结果:expr = input('输入要计算的表达式:') result = eval(expr) print(result) # 输入1+2*3时输出7 - 注意:
exec和eval都会执行输入的任意Python代码,如果你是在对外开放的服务中使用该功能,会存在严重的任意代码执行漏洞,需要提前对用户输入做语法校验或者沙箱隔离,本地自用场景下则无需担心安全问题。
内容的提问来源于stack exchange,提问作者P-CAST
相关产品推荐
相关产品推荐

