2014-12-03 140 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