首页 文章

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

提问于
浏览
297

重复:在Python中,如何获取当前正在执行的文件的路径和名称?

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

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

5 回答

  • 378

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

  • 35

    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))
    
  • 70
    import os
    print os.path.abspath(__file__)
    
  • -3

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

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

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

  • 79

    如果您甚至有相对路径名(在这种情况下它似乎是 ./ ),您可以打开相对于脚本文件的文件 . 我使用Perl,但同样的通用解决方案可以适用:我将目录拆分为文件夹数组,然后 pop 关闭最后一个元素(脚本),然后 push (或者你, append ),无论我想要什么,然后加入他们再次在一起,和BAM!我有一个工作路径名,指向我期望它指向的位置,相对或绝对 .

    当然,有更好的解决方案,如发布 . 我有点像我的 .

相关问题