我想使用子进程更改当前目录。
例如:
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
但它没有发生..
如何更改当前目录?
感谢。
答案 0 :(得分:13)
要更改目录,请改用os.chdir()
。
您还可以通过运行subprocess.Popen(...)
来执行特定指令中的命令 - 它具有可选参数cwd=None
。只需使用它来指定工作目录。
另外,你可以看看我编写的一个小模块,它完成了Python标准库中缺少的一些功能。可能这个模块尤其是https://github.com/ssbarnea/tendo/blob/master/tendo/tee.py