如何获取我正在运行的Python脚本的路径?

时间:2009-02-27 15:50:00

标签: python path

  

重复:
  In Python, how do I get the path and name of the file that is currently executing?

如何获取我正在运行的Python脚本的路径?我正在做dirname(sys.argv[0]),但是在Mac上我只获取文件名 - 而不是像我在Windows上那样的完整路径。

无论我的应用程序从何处启动,我都想打开与我的脚本文件相关的文件。

5 个答案:

答案 0 :(得分:410)

os.path.realpath(__file__)将为您提供当前文件的路径,解析路径中的所有符号链接。这在我的Mac上工作正常。

答案 1 :(得分:91)

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)) 

答案 2 :(得分:82)

import os
print os.path.abspath(__file__)

答案 3 :(得分:36)

如果您计划使用py2exe编译脚本,则无法使用已接受的解决方案。如果您打算这样做,这是功能等同的:

os.path.dirname(sys.argv[0])

Py2exe不提供__file__变量。供参考:http://www.py2exe.org/index.cgi/Py2exeEnvironment

答案 4 :(得分:-4)

如果您甚至有相对路径名(在这种情况下它似乎是./),您可以打开相对于您的脚本文件的文件。我使用Perl,但同样的通用解决方案可以应用:我将目录拆分为文件夹数组,然后pop关闭最后一个元素(脚本),然后push(或者为你,{{ 1}})在我想要的任何东西上,然后再将它们连接在一起,并且BAM!我有一个工作路径名,指向我希望它指向的位置,相对或绝对。

当然,有更好的解决方案,如发布。我就像我一样。