我做了一个游戏,我想保存高分。所以我需要一个地方来做到这一点。我选择将它放在C:\All Programs
目录中。我的问题是,每个计算机上的目录名称都不相同。例如在我的例子中,它是C:/Program Files
(x86)。查找C:程序路径(不是脚本路径)
所以我的问题: 有没有办法,发现任何一台计算机上的路径?
问题就迎刃而解了:
os.getenv( 'PROGRAMFILES')
我做了一个游戏,我想保存高分。所以我需要一个地方来做到这一点。我选择将它放在C:\All Programs
目录中。我的问题是,每个计算机上的目录名称都不相同。例如在我的例子中,它是C:/Program Files
(x86)。查找C:程序路径(不是脚本路径)
所以我的问题: 有没有办法,发现任何一台计算机上的路径?
问题就迎刃而解了:
os.getenv( 'PROGRAMFILES')
你可以使用os.getenv
或os.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')正是我一直在寻找的东西。谢谢 – 2014-12-03 19:24:08
很高兴得到了帮助!请不要忘记通过点击旁边的检查来接受答案。这样做可以让人们知道这个问题已经解决了。 – iCodez 2014-12-03 19:30:01
我第二@ 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 – 2014-12-03 19:24:27
它看起来并不像你做了很多研究。我建议查找'Python相对路径' – 2014-12-03 17:40:52
我没有找到任何东西 - 只有那些想找出他们的脚本文件的人。但我想获得正常的程序文件,如C:/程序文件/ – 2014-12-03 17:48:33
http://stackoverflow.com/questions/918154/relative-paths-in-python在精确搜索的第一个结果,似乎与我很相关。 – 2014-12-03 17:49:58