从python脚本本身更改当前目录pwd

时间:2019-01-28 14:33:22

标签: python bash

如何更改从中调用python脚本的命令窗口的当前目录

我正在编写一个python脚本,它应根据用户输入将当前shell的目录(cd)更改为特定目录。

问题在于,每当脚本结束时,我都会回到原始路径,而无需更改。

bash-4.2$ pwd
/home/<username>/scripts
bash-4.2$ ./enterFW.py -fw <fw>
/filer/syslog_ng/2019/<fw>/2019/01/28  #<--I print the new directory, and it should be correct
bash-4.2$ pwd
/home/<username>/scripts #<-however after the script ends, i am back again to the original path
bash-4.2$

我使用subprocess.call(['cd', <new path>])os.chdir(<new path>)更改目录...都相同。

请检查并告知

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法是实际解决方法。您在哪里获取您的输出 当前外壳中的脚本。否则,传送将在子外壳中执行。

myprogram.py

import os
new_dir = "/home/cabox/workspace"
os.chdir(new_dir)
print os.getcwd()

在linux shell中:

cabox@box-codeanywhere:~/workspace/cliRtStocks$ pwd
/home/cabox/workspace/cliRtStocks

cabox@box-codeanywhere:~/workspace/cliRtStocks$ a=`python myprogram.py`;cd $a

cabox@box-codeanywhere:~/workspace$ pwd
/home/cabox/workspace
cabox@box-codeanywhere:~/workspace$