如何使用子进程在目录周围交替

时间:2011-05-27 15:11:36

标签: python unix subprocess

我想使用子进程更改当前目录。

例如:

import os, sys, subprocess

os.environ['a'] = '/home'
os.environ['b'] = '/'

subprocess.call('cd $a', shell=True)
subprocess.call('ls', shell=True)

subprocess.call('cd $b', shell=True)
subprocess.call('ls', shell=True)

我认为这应该像命令行unix一样工作

$ export a='/home'
$ export b='/'

$ cd $a
$ ls
$ cd $b
$ ls

但它没有发生..

如何更改当前目录?

感谢。

1 个答案:

答案 0 :(得分:13)

要更改目录,请改用os.chdir()

您还可以通过运行subprocess.Popen(...)来执行特定指令中的命令 - 它具有可选参数cwd=None。只需使用它来指定工作目录。

另外,你可以看看我编写的一个小模块,它完成了Python标准库中缺少的一些功能。可能这个模块尤其是https://github.com/ssbarnea/tendo/blob/master/tendo/tee.py