说我在a.py
下创建path/to/somewhere/
。后来在IDE(pycharm)中,我将它重构为path/to/another_place/
。
但是当我稍后运行a.py
时,os.getcwd()
显示其工作目录仍在path/to/somewhere
中。 (os.listdir('.')
也表明它位于原始位置。)
以下图片是我遇到的,makeimg.py
最初位于learn_function
我是python的新手,我不明白文件/模块是如何定位的。
我做错了吗?或者这是一个错误?
答案 0 :(得分:1)
os.getcwd()
返回 c urrent w orking d irectory,它可能/可能不是您的目录脚本存在,它是运行脚本的目录。很可能在您的PyCharm Run/Debug
配置中,您已将工作目录设置为path/to/somewhere
。
来自run/debug configuration
doc page for pycharm -
工作目录 - 指定正在运行的任务使用的目录。
当通过键盘快捷键 Ctrl + Shift + F10 创建默认运行/调试配置时,或者通过在脚本的上下文菜单上选择“运行”时,工作目录是包含可执行脚本。该目录可能与项目目录不同。
理想情况下,您的代码不应该依赖于当前的工作目录,因为您可以使用python文件的绝对路径从任何地方运行python文件。
相反,如果您想要脚本所在的路径,请使用__file__
在脚本中获取该路径。
示例 -
print(__file__)
这应该打印脚本的路径(如sys.argv[0]
中所示)。