我正在使用簡單的Python(2.7.3)腳本,但我必須獲取用戶的主文件夾。 我想:Python os.environ [「HOME」]在空閒時工作,但不在腳本中
import os
home_folder = os.environ["HOME"]
而且當我跑步時閒置此代碼它工作正常,但如果我從CMD啓動它,它給了我:«KeyError: 'HOME'»
有人能告訴我爲什麼嗎?我怎麼解決這個問題?
我正在使用簡單的Python(2.7.3)腳本,但我必須獲取用戶的主文件夾。 我想:Python os.environ [「HOME」]在空閒時工作,但不在腳本中
import os
home_folder = os.environ["HOME"]
而且當我跑步時閒置此代碼它工作正常,但如果我從CMD啓動它,它給了我:«KeyError: 'HOME'»
有人能告訴我爲什麼嗎?我怎麼解決這個問題?
聽起來就像你試圖在Windows上運行這完全基於你的「從CMD啓動它」。 IDLE爲了方便而給你在Windows上使用USERPROFILE
而不是HOME
。 %USERPROFILE%
envar是Win32 $HOME
。
Windows使用USERPROFILE
而不是HOME
。 Windows沒有HOME
,其他操作系統沒有USERPROFILE
,所以使用其中任何一個都會降低平臺獨立性。
爲了保證平臺的獨立性,可以使用expanduser
從os.path
,就像這樣:
import os.path
home_folder = os.path.expanduser('~')
在一個側面說明,您可以使用print(os.environ)
看到所有的環境變量,你有機會獲得,這表明IDLE
有額外功能。
謝謝!它讓我很困惑,所以我在這裏問它。 – Telmo
真棒,謝謝! – user1063287
Windows沒有HOME環境變量。它使用USERPROFILE來代替。 爲了解決您可以在控制檯上定義一個新的變量「HOME」打字的問題:
set HOME=%USERPROFILE%
爲USERPROFILE變量的副本。
您可以檢查它們是相同的打字:
echo %USERPROFILE%
echo %HOME%
它將爲本屆會議的工作。
你在哪個環境中運行腳本? Linux,Windows,cron? –