2014-12-03 143 views
0

我做了一个游戏,我想保存高分。所以我需要一个地方来做到这一点。我选择将它放在C:\All Programs目录中。我的问题是,每个计算机上的目录名称都不相同。例如在我的例子中,它是C:/Program Files(x86)。查找C:程序路径(不是脚本路径)

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

问题就迎刃而解了:
os.getenv( 'PROGRAMFILES')

+0

它看起来并不像你做了很多研究。我建议查找'Python相对路径' – 2014-12-03 17:40:52

+0

我没有找到任何东西 - 只有那些想找出他们的脚本文件的人。但我想获得正常的程序文件,如C:/程序文件/ – 2014-12-03 17:48:33

+0

http://stackoverflow.com/questions/918154/relative-paths-in-python在精确搜索的第一个结果,似乎与我很相关。 – 2014-12-03 17:49:58

回答

0

你可以使用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' 
>>> 
+0

os.getenv('PROGRAMFILES')正是我一直在寻找的东西。谢谢 – 2014-12-03 19:24:08

+0

很高兴得到了帮助!请不要忘记通过点击旁边的检查来接受答案。这样做可以让人们知道这个问题已经解决了。 – iCodez 2014-12-03 19:30:01

2

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

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

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

+0

os.getenv('PROGRAMFILES')是事情。谢谢:D – 2014-12-03 19:24:27