2017-07-29 125 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