重复:在Python中,如何获取当前正在执行的文件的路径和名称?
如何获取我正在运行的Python脚本的路径?我正在做 dirname(sys.argv[0]) ,但是在Mac上我只获取文件名 - 而不是像我在Windows上那样的完整路径 .
dirname(sys.argv[0])
无论我的应用程序从何处启动,我都想打开与我的脚本文件相关的文件 .
os.path.realpath(__file__) 将为您提供当前文件的路径,解析路径中的所有符号链接 . 这在我的Mac上工作正常 .
os.path.realpath(__file__)
7.2潜入Python:Finding the Path .
import sys, os print('sys.argv[0] =', sys.argv[0]) pathname = os.path.dirname(sys.argv[0]) print('path =', pathname) print('full path =', os.path.abspath(pathname))
import os print os.path.abspath(__file__)
如果您计划使用py2exe编译脚本,则接受的解决方案将无效 . 如果您打算这样做,这是功能等同的:
os.path.dirname(sys.argv[0])
Py2exe不提供 __file__ 变量 . 供参考:http://www.py2exe.org/index.cgi/Py2exeEnvironment
__file__
如果您甚至有相对路径名(在这种情况下它似乎是 ./ ),您可以打开相对于脚本文件的文件 . 我使用Perl,但同样的通用解决方案可以适用:我将目录拆分为文件夹数组,然后 pop 关闭最后一个元素(脚本),然后 push (或者你, append ),无论我想要什么,然后加入他们再次在一起,和BAM!我有一个工作路径名,指向我期望它指向的位置,相对或绝对 .
./
pop
push
append
当然,有更好的解决方案,如发布 . 我有点像我的 .
5 回答
os.path.realpath(__file__)
将为您提供当前文件的路径,解析路径中的所有符号链接 . 这在我的Mac上工作正常 .7.2潜入Python:Finding the Path .
如果您计划使用py2exe编译脚本,则接受的解决方案将无效 . 如果您打算这样做,这是功能等同的:
Py2exe不提供
__file__
变量 . 供参考:http://www.py2exe.org/index.cgi/Py2exeEnvironment如果您甚至有相对路径名(在这种情况下它似乎是
./
),您可以打开相对于脚本文件的文件 . 我使用Perl,但同样的通用解决方案可以适用:我将目录拆分为文件夹数组,然后pop
关闭最后一个元素(脚本),然后push
(或者你,append
),无论我想要什么,然后加入他们再次在一起,和BAM!我有一个工作路径名,指向我期望它指向的位置,相对或绝对 .当然,有更好的解决方案,如发布 . 我有点像我的 .