我一直在尝试获取打开的 .py 文件(使用 Spyder)的位置,该文件将用于链接各种文件并使用 __file__ 名称,以便任何计算机都可以从其运行当前目录。
问题是当我尝试时:
location = os.path.abspath(os.path.dirname(__file__))
它给了我错误:
名称错误:名称“__file__”未定义
我通过使用字符串形式调用文件而不是名称文件变量来绕过这个问题:
location = os.path.abspath(os.path.dirname('__file__'))
这可以让我获得文件的父目录,但不能获得文件所在的实际文件夹:
location = 'C:\Users\......\Scripts'
当实际位置位于:
location = 'C:\Users\......\Scripts\ISO'
我尝试了 abspath
和 dirname
以及 realpath
的各种组合来获取 true 目录文件已存在,但我无法获取它。
我做错了什么?
最佳答案
因为我在 Spyder shell 中运行脚本,所以它没有输出正确的工作目录,因为工作目录设置在某种程度上与文件的路径不一致。
这可以通过运行 -> 每个文件的配置 -> 正在执行的文件的目录来解决
但是使用__file__
运行脚本的更有效方法是从脚本所在目录中的python3.X.exe
文件运行脚本。
关于python - 无法获取 __file__ Python 的实际目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53656960/