如何使用子过程在目录之间切换

问题描述

| 我想使用子进程更改当前目录。 例如:
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)
我认为这应该像命令行unix一样工作
$ export a=\'/home\'
$ export b=\'/\'

$ cd $a
$ ls
$ cd $b
$ ls
但这不会发生。 如何更改当前目录? 谢谢。     

解决方法

        要更改目录,只需使用
os.chdir()
。 您还可以通过运行
subprocess.Popen(...)
在特定的目录中执行命令-它具有可选参数
cwd=None
。只需使用它来指定工作目录。 另外,您可以看一下我编写的一个小模块,该模块完成了Python标准库中某些缺少的功能。也许这个模块特别是https://github.com/ssbarnea/tendo/blob/master/tendo/tee.py