用python更改目录

Ten*_*gis 5 python bash

我巧合地发现我无法在python代码中更改实际目录.我的测试程序如下:

from os import system

def sh(script):
    system("bash -c '%s'" % script)

sh("cd /home")
sh("pwd")
Run Code Online (Sandbox Code Playgroud)

输出pwd不是/home,而是上面代码所在的目录.

有人可以解释为什么会这样吗?

Thi*_*ter 6

问题是您执行shell命令而不是实际使用更改目录 os.chdir()

每次os.system()调用都在新shell中执行给定的命令 - 因此脚本的工作目录根本不受影响.


cni*_*tar 5

该目录实际上已更改,但在另一个进程中,您的脚本的子项.要记住一条简单的规则:孩子永远不会影响其父母的环境(PATH,CWD等).