2017-07-29 123 views
2

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

我目前正在研究Python脚本。该脚本将由终端/终端仿真器中的用户使用。当满足某些标准时,脚本会将用户移动到正确的目录。我遇到的问题是我可以移动Python脚本的工作目录,但是一旦脚本退出,用户仍然在他们运行脚本的目录中。任何想法如何实现这一目标?

回答

1

对不起,你不能这样做,与在正常的方式启动了一项计划。至少,你不能在POSIX兼容的操作系统中。

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

有一种解决方法:您可以将cd命令放入脚本,然后source脚本,该脚本在当前进程中执行脚本,而不是在新进程中运行该脚本。我猜你的Python代码可能会创建一个很小的shell脚本,并将其更改为所需的目录,但是您仍然需要用户输入source这个脚本来实现实际的目录更改。当我需要为我自己使用这个功能时,我只需打印所需的cd命令到外壳,这样我就可以很容易地复制&粘贴它,然后点击输入。 :)

看一看here关于为什么cd是这样的更多细节。

1

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

os.chdir(path)

+1

这只是改变Python的工作目录。我想更改用户所在的目录。当Python脚本退出时,用户应该位于与运行脚本不同的目录中。 – MDooley47

+1

然后你想要一个shell脚本,而不是Python脚本 –

+0

是的,我想我将不得不使它成为一个shell脚本。谢谢! – MDooley47