Python os.environ [ "HOME" ] работает на холостом ходу, но не в script
Я работаю над простым Python (2.7.3) script, но мне нужно получить домашнюю папку пользователя.
Я пробовал:
import os
home_folder = os.environ["HOME"]
И он отлично работает, когда я запускаю этот код в IDLE, но если я запустил его из cmd, он даст мне: «KeyError: 'HOME'»
Может кто-нибудь сказать мне, почему? Как я могу решить эту проблему?
Ответы
Ответ 1
Windows использует USERPROFILE
вместо HOME
. Windows не имеет HOME
, а другие ОС не имеют USERPROFILE
, поэтому с использованием любой из этих возможностей независимости от платформы.
Чтобы сохранить независимость от платформы, вы можете использовать expanduser
от os.path
, например:
import os.path
home_folder = os.path.expanduser('~')
На боковой ноте вы можете использовать print(os.environ)
, чтобы увидеть все переменные среды, к которым у вас есть доступ, что показывает, что IDLE
имеет дополнительные функции.
Ответ 2
В Windows нет переменной среды HOME. Вместо этого он использует USERPROFILE.
Чтобы решить проблему, вы можете определить новую команду "HOME" на вашей консоли:
set HOME=%USERPROFILE%
в качестве копии переменной USERPROFILE.
Вы можете проверить, что они идентичны:
echo %USERPROFILE%
echo %HOME%
Он будет работать для текущего сеанса.
Ответ 3
Похоже, вы пытаетесь запустить это в Windows, основываясь исключительно на своем "запуске" его из cmd ". IDLE дает вам это как удобство; в Windows используйте USERPROFILE
вместо HOME
. %USERPROFILE%
envar - это Win32 $HOME
.