Python:os.getcwd()在重构文件位置

时间:2015-08-20 08:57:00

标签: python operating-system pycharm

说我在a.py下创建path/to/somewhere/。后来在IDE(pycharm)中,我将它重构为path/to/another_place/

但是当我稍后运行a.py时,os.getcwd()显示其工作目录仍在path/to/somewhere中。 (os.listdir('.')也表明它位于原始位置。)

以下图片是我遇到的picturemakeimg.py最初位于learn_function

我是python的新手,我不明白文件/模块是如何定位的。

我做错了吗?或者这是一个错误?

1 个答案:

答案 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]中所示)。