Python 更改用户目录

Python change users' directory

有人知道如何使用 Python 更改用户所在的当前目录吗?

我目前正在编写 Python 脚本。此脚本将由 terminal/terminal 模拟器中的用户使用。当满足特定条件时,脚本会将用户移动到正确的目录。我 运行 遇到的问题是我可以移动 Python 脚本的工作目录,但是一旦脚本退出,用户仍然在他们 运行 脚本所在的目录中。关于如何实现这一点有什么想法吗?

您可以使用文件的绝对路径,或者

os.chdir(path)

抱歉,您无法使用以正常方式启动的程序执行此操作。至少,您不能在符合 POSIX 的 OS 中使用。

当您以正常方式 运行 脚本或程序时,它会在新进程中获得 运行,当然,在该新进程中所做的任何更改都不会影响父进程:子进程从父进程继承环境,父进程的环境不会受到子进程对其环境所做的任何更改的影响。

有一种解决方法:您可以将 cd 命令放入脚本中,然后 source 该脚本在当前进程中执行脚本而不是 运行 在一个新的过程中使用它。我想您的 Python 代码可以创建一个很小的 ​​shell 脚本来更改到所需的目录,但是您仍然需要用户 source 该脚本来进行实际的目录更改。当我需要为自己使用时,我只需将所需的 cd 命令打印到 shell,这样我就可以轻松地复制和粘贴它,然后按 Enter. :)

查看 here 以了解有关 cd 为何如此的更多详细信息。

这可能不是完美的解决方案,但它可能很有用。 使用此命令,您将打开一个新的 cmd promt,其中包含路径。 pd:仅适用于 windows 用户

import subprocess
import os
os.chdir('the\path\to\your\dir')
subprocess.run("start cmd", shell=True)