【问题标题】:How can I get the path of my python script?如何获取我的 python 脚本的路径?
【发布时间】:2012-11-10 07:33:39
【问题描述】:

我正在尝试获取我的 python 脚本的路径。

我知道 'sys.argv[0] 给了我 Python 脚本的路径和名称。

我怎样才能得到路径?

我试过了:

 print sys.argv[0]
    path = sys.argv[0].split("/")
    scriptpath = "".join(path[0:-1])

但它不会加回路径分隔符。

【问题讨论】:

  • 如果您出于某种原因必须拥有特定的解决方案,请将 "".join(path[0:-1]) 更改为 "/".join(path[0:-1]) :)

标签: python


【解决方案1】:

你正在寻找os.path.dirname(),如果你可能有一个相对路径,你也需要os.path.abspath()

【讨论】:

    【解决方案2】:

    不要尝试对路径进行字符串操作,而是使用os.path 模块。例如:

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

    【讨论】:

      【解决方案3】:

      From another Stackoverflow thread

      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)
      

      【讨论】:

        【解决方案4】:

        更喜欢使用__file__,像这样:

        os.path.dirname(os.path.realpath(__file__))
        

        注意: 如果您通过另一个目录中的另一个脚本调用该脚本,则使用 sys.argv[0] 可能无法正常工作。

        【讨论】:

        • 不幸的是,如果你使用 PyInstaller,这个不能按预期工作,因为它被解压缩到一个临时文件夹中,然后(正确地)作为 __file__ 的路径返回。在这种情况下,dirname(realpath(sys.argv[0])) 工作正常。
        猜你喜欢
        • 2019-08-28
        • 2011-07-15
        • 2011-01-10
        • 2013-06-26
        • 1970-01-01
        • 2014-02-06
        • 2010-10-10
        • 2015-10-07
        相关资源
        最近更新 更多