【问题标题】:Find C:\Programs path (not scripts path)查找 C:\Programs 路径(不是脚本路径)
【发布时间】:2015-02-01 09:29:07
【问题描述】:

我制作了一款游戏,我想保存最高分。所以我需要一个地方来做这件事。我选择将它放在C:\All Programs 目录中。我的问题是该目录名称在每台计算机上都不相同。例如我的C:/Program Files (x86)。

所以我的问题: 有没有办法在任何计算机上发现该路径?

问题已解决:
os.getenv('PROGRAMFILES')

【问题讨论】:

  • 看起来你没有做太多的研究。我建议查找Python Relative Paths
  • 我没有找到任何东西——只有想找出他们的脚本文件的人。但我想获得像 C:/Program Files/ 这样的普通程序文件
  • stackoverflow.com/questions/918154/relative-paths-in-python 精确搜索的第一个结果,似乎与我非常相关。
  • @EliasBenevedes - 相对路径搜索如何帮助解决有关绝对路径的问题?
  • @EliasBenevedes,该链接似乎无关;我相信你误解了这个问题。

标签: python windows path directory


【解决方案1】:

我第二个@iCodez 的回答是使用os.getenv从系统环境变量中获取路径字符串,但您可能希望改用为​​ APPDATA 或 LOCALAPPDATA 定义的路径。

Program Files 目录上的 Windows 权限设置可能会阻止标准用户帐户将数据写入目录。

我相信 APPDATA 和 LOCALAPPDATA 路径就是为这种用途而设计的。在我的系统上,APPDATA = C:\Users\myname\AppData\Roaming 和 LOCALAPPDATA = C:\Users\myname\AppData\Local。我的用户帐户对两个目录都具有完全的读/写权限。

【讨论】:

  • os.getenv('PROGRAMFILES') 就是这样。谢谢:D
【解决方案2】:

您可以使用os.getenvos.environ

>>> import os
>>>> os.getenv('PROGRAMFILES')
'C:\\Program Files'
>>> os.environ['PROGRAMFILES']
'C:\\Program Files'
>>>

请注意,您还可以为未设置环境变量时指定默认返回值:

>>> os.getenv('BADVAR', 'default')
'default'
>>> os.environ.get('BADVAR', 'default')
'default'
>>>

【讨论】:

  • os.getenv('PROGRAMFILES') 正是我要找的东西。谢谢
  • 很高兴得到帮助!请不要忘记通过单击旁边的检查来接受答案。这样做可以让人们知道这个问题已经解决了。
猜你喜欢
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-10
  • 2011-11-25
  • 2020-10-13
  • 2022-01-18
相关资源
最近更新 更多