将python输入转换为命令

时间:2013-06-08 09:43:10

标签: python

我正在制作自己的shell,但我希望它能够做出用户输入的内容。

例如:

while 1:
    c = input()
    do c

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

任何想法,

提前致谢!

2 个答案:

答案 0 :(得分: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())

答案 1 :(得分:0)

您可以使用以下内容:

系统

来自os moduule的

system()执行作为参数提供的命令并返回返回码。

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

POPEN

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

import os
cmd=raw_input()
l=os.popen(cmd)
print l.read()