我正在研究一個簡單的Python腳本,它可以使用subprocess
和/或os
來執行一些命令,它工作正常。運行Python腳本後,終端在給定的目錄下?
但是,當腳本退出時,我想cd
實際的終端(在這種情況下是OS X)退出時,新文件已準備好在已創建的目錄中使用。以下所有(subprocess.Popen
,os.system
,os.chdir
)可以做我想做的從內腳本(即它們在目標目錄中執行的東西),但在退出離開碼頭在腳本自己目錄,而不是目標目錄。
我想避免寫一個shell腳本到臨時文件只是爲了實現這一點,如果這是可能的話呢?
謝謝 - 我將重寫爲shell腳本,並從那裏調用Python :-) – 2010-05-09 21:48:41
您不需要離開Python解釋器。你只需要按照你想要的方式獲得流程環境(例如'os.chdir()')然後'os.execv()'一個新的shell。是的,你仍然會運行一個下級shell,但Python解釋器將被替換。 http://docs.python.org/library/os.html#os.execv – msw 2010-05-09 22:30:11
@msw:我從來沒有能夠可靠地在所有平臺上使用shell(特別是PowerShell),但我應該有建議。 – 2010-05-09 22:47:51