问题描述
|
我想使用子进程更改当前目录。
例如:
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