我发现脚本的“当前工作目录”最初不是脚本所在的位置,而是他/她运行脚本时的用户。如何处理文件路径?
如果脚本是在/Desktop/Projects/pythonProject/myscript.py
,但我在我的终端/Documents/Arbitrary
我,当我运行该脚本,那么这将是它的当前工作目录,并在open('data.txt')
试图要给未找到文件,因为它是不在正确的目录中查找。
那么脚本应该如何打开文件,如果它不知道它从哪里运行?这是如何处理的?
我最初的想法是使用绝对路径。假设我的脚本需要打开data.txt
,并将其存储在其包pythonProject
中。那么我只想说open('/Desktop/Projects/pythonProject/data.txt')
。
但是,如果不修改其中的每条路径,就无法移动该项目,所以这不可能是正确的解决方案。
或者只是您的答案只是您必须在您运行脚本时脚本所在的目录中?这似乎也不错。
有没有一些简单的操作,这我没有想到?您是否应该在脚本的开头将os.chdir
添加到脚本的位置?
您可以使用'__file__'确定脚本的位置。 – smarx
[我如何获取当前正在执行的文件的路径和名称?](http://stackoverflow.com/questions/50499/how-do-i-get-the-path-and-name当前正在执行的文件) – congusbongus