如何使用子进程在目录间切换
我想通过子进程来改变当前的目录。
比如说:
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 个回答
13
要更改目录,你只需要使用 os.chdir()
这个命令。
你也可以在特定的目录中执行命令,方法是使用 subprocess.Popen(...)
- 这个命令有一个可选的参数 cwd=None
。你只需用它来指定工作目录。
另外,你可以看看我写的一个小模块,它补充了Python标准库中一些缺失的功能。这个模块可能特别有用,链接在这里:https://github.com/ssbarnea/tendo/blob/master/tendo/tee.py