Python 更改用户目录
Python change users' directory
有人知道如何使用 Python 更改用户所在的当前目录吗?
我目前正在编写 Python 脚本。此脚本将由 terminal/terminal 模拟器中的用户使用。当满足特定条件时,脚本会将用户移动到正确的目录。我 运行 遇到的问题是我可以移动 Python 脚本的工作目录,但是一旦脚本退出,用户仍然在他们 运行 脚本所在的目录中。关于如何实现这一点有什么想法吗?
您可以使用文件的绝对路径,或者
抱歉,您无法使用以正常方式启动的程序执行此操作。至少,您不能在符合 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)
有人知道如何使用 Python 更改用户所在的当前目录吗?
我目前正在编写 Python 脚本。此脚本将由 terminal/terminal 模拟器中的用户使用。当满足特定条件时,脚本会将用户移动到正确的目录。我 运行 遇到的问题是我可以移动 Python 脚本的工作目录,但是一旦脚本退出,用户仍然在他们 运行 脚本所在的目录中。关于如何实现这一点有什么想法吗?
您可以使用文件的绝对路径,或者
抱歉,您无法使用以正常方式启动的程序执行此操作。至少,您不能在符合 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)