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

Jon*_*ira 8 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)
Run Code Online (Sandbox Code Playgroud)

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

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

$ cd $a
$ ls
$ cd $b
$ ls
Run Code Online (Sandbox Code Playgroud)

但它不会发生..

如何更改当前目录?

谢谢.

sor*_*rin 13

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

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

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