【问题标题】:Is there a way to tell where your python file is?有没有办法告诉你的python文件在哪里?
【发布时间】:2011-07-28 09:18:02
【问题描述】:

(WindowsXP 上的 Python2.7-3.2) 我曾经使用 sys.arg[0],但现在我从批处理脚本执行它(用于确定用户是否有 python)

谢谢^^

~ps:如果你知道更好的方法来判断用户是否有Python

【问题讨论】:

  • 嗯?如果您正在运行 Python 脚本,那么显然用户拥有 Python!?

标签: python windows python-3.x python-2.7


【解决方案1】:

也许你正在寻找

os.path.dirname(__file__)

【讨论】:

    【解决方案2】:

    您可以读取变量__file__ 以找出当前正在解释的 Python 文件的路径。

    【讨论】:

    • 这是__file__,而不是__FILE__
    【解决方案3】:
    os.path.normpath(os.path.abspath(os.path.dirname(__file__)))
    

    【讨论】:

      【解决方案4】:

      你可以看看这个检查注册表的帖子

      batch file to check if Python is installed

      似乎很简单:

      reg 查询“hkcu\software\Python 2.6”

      另一种方法是检查 %PATH%。我不确定该怎么做,因为周围没有安装的 Windows 来测试它:)

      尝试了解有关“reg 查询”以及如何在 %PATH% 中搜索可执行文件的更多信息!

      祝你好运!

      【讨论】:

      • 这没有回答所提出的问题。
      • 不,但它回答了我问的 PS 问题,Bryan。谢谢,欧比。但是你知道如何为 python3 做到这一点吗?似乎在 reg 查询“hkcu\software”中列出了 Python2
      【解决方案5】:

      补充一下,虽然已经回答了,但这是我从这个网站得到的东西(不记得出处)

      import os, sys
      print "CWD: ", os.getcwd()
      print "Script: ", sys.argv[0]
      print ".EXE: ", os.path.dirname(sys.executable)
      print "Script dir: ", os.path.realpath(os.path.dirname(sys.argv[0]))
      pathname, scriptname = os.path.split(sys.argv[0])
      print "Relative script dir: ", pathname
      print "Script dir: ", os.path.abspath(pathname)
      print 'Current file: ', os.path.dirname(__file__)
      print os.path.dirname(__file__) + '/IDLESTARTUP.txt'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 2014-06-06
        • 2019-11-19
        • 1970-01-01
        • 1970-01-01
        • 2017-01-19
        相关资源
        最近更新 更多