[英]Why won't os.chdir() change my current working directory?
当我在终端 shell 中输入以下内容时,我当前的工作目录不会改变。 我没有收到任何错误代码。
import os
os.chdir('/Users/*myname*/Documents')
当我退出 shell 并在终端中输入“pwd”时,我不断收到/Users/*myname*
。 它不会将当前工作目录更改为Documents
。 有人可以帮我弄这个吗?
每个进程都有自己的“当前工作目录”。 os.chdir
更改执行它的 python 进程的当前工作目录:
>>> import os
>>> os.getcwd()
'/'
>>> os.chdir('/tmp')
>>> os.getcwd()
'/tmp'
一旦退出 python 进程并返回到产生它的 shell 进程。 该进程的工作目录不会受到影响。
这不是chdir
的工作方式。
您使用os
模块给出的任何命令都可以在 Python 上下文而不是终端上下文中工作。
例如-您在/Users/abc
中打开一个终端,然后在那里运行 python 解释器,您将在该 python 解释器中获得一个工作目录,现在如果您对当前路径进行任何更改,它将工作,但在该 Z23EEEB4347BDD26BFC6B7EEtZA3B7 上下文中影响您的终端打开的位置。
试试这个 - 切换到一个目录后,使用python
创建一个文件,你会得到你chdir
所在的文件。
您可以将 python shell 想象为一个单独的进程。 进入 shell 后,您将被转移到“另一个终端”,您可以使用类似os
的库以编程方式与文件系统进行交互。
您可以尝试在更改目录后列出当前目录中的所有文件以验证更改。 在os.chdir('/Users/myname/Documents')
之后插入os.listdir()
) 。
但是,一旦您退出 python shell,您就会回到您开始的前一个 shell 进程。 在那里,当前工作目录没有改变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.