我一直在尝试获取一个打开的.py文件的位置(使用Spyder(,该文件将用于链接各种文件并使用__file__
名称,以便任何机器都可以从其当前目录运行。
问题是当我尝试时:
location = os.path.abspath(os.path.dirname(__file__))
它给了我一个错误:
NameError: name '__file__' is not defined
我绕过了这一点,将文件作为字符串而不是名称文件变量调用,使用:
location = os.path.abspath(os.path.dirname('__file__'))
这让我得到了文件的父目录,但没有得到文件所在的实际文件夹:
location = 'C:Users......Scripts'
当真正的位置在:
location = 'C:Users......ScriptsISO'
我尝试了abspath
、dirname
和realpath
的各种组合来获取文件所在的true目录,但我无法获取。
我做错了什么?
因为我在Spyder shell中运行脚本,它没有输出正确的工作目录,因为工作目录设置与文件的路径不一致。
这可以通过Run -> Configuration per file -> The directory of the file being executed
解决
但是使用__file__
运行脚本更有效的方法是从脚本所在目录中的python3.X.exe
文件运行脚本。