1

我正在制作自己的外壳,但我希望它完成用户输入的操作。

例如:

while 1:
    c = input()
    do c

通过 do c 我希望它执行该人输入的命令。

有任何想法吗,

提前致谢!

4

2 回答 2

1

假设您使用的是 Python 3,那么在 Python 2 上您将raw_input使用

while 1:
    c = input()
    exec(c)

请注意,您不能相信人们不会在此处输入恶意代码

您可能还希望将其包装在try/except中以在发生时打印回溯Exception并继续循环:

import traceback
while 1:
    try: 
        c = input()
        exec(c)
    except:
        print(traceback.format_exc())
于 2013-06-08T09:43:52.253 回答
0

您可以使用以下内容:

系统

来自 os 模块的 system() 执行作为参数提供的命令并返回返回码。

import os
cmd=raw_input()
os.system(cmd)    

爆破

popen 用于创建子进程。优点是 popen 可用于读取执行命令的输出。

import os
cmd=raw_input()
l=os.popen(cmd)
print l.read()
于 2013-06-08T10:02:47.557 回答