为什么执行脚本后当前目录没有改变?

为什么执行脚本后当前目录没有改变?

脚本从 shell 中执行为./oximeter

该脚本oximeter有 5 个命令:

python3 ~/Documents/oximeter/3211ipod.py
ls -l
pwd
cd ~/Documents/oximeter/
pwd

Python 脚本按预期运行。我希望脚本能够更改目录,如命令 #4 所示。当控制权返回给用户时,目录保持不变。

第二个pwd返回所需的目录,但是当控制权返回给用户时,pwd表明该目录不是~/Documents/oximeter

为什么会这样?是否有一个更强大的命令可以为用户改变目标目录?

这是在 Ubuntu 20.04 中。

答案1

因为你只告诉 python3 运行 .py 脚本一个目录,你必须先到cd那里

(例如在脚本中:)cd $(dirname ~/myfolder/myscript.py) ;python3 myscript.py


您可以使用以下命令获取 Python 脚本在 Python 中的位置:

print('abspath:     ', os.path.abspath(__file__))
print('abs dirname: ', os.path.dirname(os.path.abspath(__file__)))

https://www.tutorialspoint.com/python3/os_getcwd.htm

相关内容