Python终端模拟器:不能使用“cd”命令。

时间:2015-07-12 19:14:51

标签: python bash terminal

我发现这个代码片段在线用于python终端模拟器,我觉得它看起来很酷,所以我继续尝试使用它。我注意到我无法使用“cd”命令,我被困在我运行文件的目录中。为什么会这样?这是怎么回事?我如何修改此代码以使其像完美的本机终端一样运行?我仍然是编程的新手,并且在我的生活中只使用过子模块。请帮忙!

import subprocess
import re

while True:
    # prevents lots of python error output
    try:
        s = raw_input('> ')
    except:
        break

    # check if you should exit
    if s.strip().lower() == 'exit':
        break

    # try to run command
    try:
        cmd = subprocess.Popen(re.split(r'\s+', s), stdout=subprocess.PIPE)
        cmd_out = cmd.stdout.read()

        # Process output
        print cmd_out

    except OSError:
        print 'Invalid command'

1 个答案:

答案 0 :(得分:2)

当您打开新进程时,您将更改新进程的当前目录,而不是调用进程。您应该使用os.chdir来更改程序的目录。因此,您需要解析命令行并检查命令是否为cd,然后决定不再调用Popen而是调用os.chdir

相关问题