2013-02-07 69 views
12

我正在使用簡單的Python(2.7.3)腳本,但我必須獲取用戶的主文件夾。 我想:Python os.environ [「HOME」]在空閒時工作,但不在腳本中

import os 
home_folder = os.environ["HOME"] 

而且當我跑步時閒置此代碼它工作正常,但如果我從CMD啓動它,它給了我:«KeyError: 'HOME'»

有人能告訴我爲什麼嗎?我怎麼解決這個問題?

+0

你在哪個環境中運行腳本? Linux,Windows,cron? –

回答

1

聽起來就像你試圖在Windows上運行這完全基於你的「從CMD啓動它」。 IDLE爲了方便而給你在Windows上使用USERPROFILE而不是HOME%USERPROFILE% envar是Win32 $HOME

15

Windows使用USERPROFILE而不是HOME。 Windows沒有HOME,其他操作系統沒有USERPROFILE,所以使用其中任何一個都會降低平臺獨立性。

爲了保證平臺的獨立性,可以使用expanduseros.path,就像這樣:

import os.path 
home_folder = os.path.expanduser('~') 

在一個側面說明,您可以使用print(os.environ)看到所有的環境變量,你有機會獲得,這表明IDLE有額外功能。

+0

謝謝!它讓我很困惑,所以我在這裏問它。 – Telmo

+0

真棒,謝謝! – user1063287

2

Windows沒有HOME環境變量。它使用USERPROFILE來代替。 爲了解決您可以在控制檯上定義一個新的變量「HOME」打字的問題:

set HOME=%USERPROFILE% 

爲USERPROFILE變量的副本。

您可以檢查它們是相同的打字:

echo %USERPROFILE% 
echo %HOME% 

它將爲本屆會議的工作。

相關問題