os.path.expanduser на Windows
Возник у меня такой вопрос. Есть в библиотечном модуле os.path такая функция как expanduser, которая вместо "~" подставляет путь к пользовательскому каталогу. Пришла она очевидно из Unix, но вот ее реализация на Windows приводит меня в сомнение.
Запуск на Windows (у меня Win2K SP4) дает следующее:
Если посмотреть установленные переменные окружения, то окажется, что переменной HOME естественно нет, вместо нее есть:
и похоже, что из них формируется путь к $HOME.
Но это суть неверно для Windows серии NT: конкретно для 2000, XP и более поздних версий.
В этих ОС для хранения настроек пользователя используются подкаталоги каталога "Documents and settings", типично располагающегося на диске C:.
И в переменных окружения есть такое:
В каталог $APPDATA все хорошо написанные приложения складывают свои настройки в папки с названием программы или продукта. В том числе так поступают и мозилловские программы (Firefox, Thunderbird). В каталоге $USERPROFILE я обнаружил каталог с настройками GIMP: .gimp-2.2/. Но все питоновские программы валят свои настройки именно в C:\\, так в корне диска C были обнаружены каталоги с настройками .idlerc/, .boa-constructor/
Вот в этом суть моего вопроса, в котором я до конца не уверен. Поскольку ни один простой пользователь практически никогда не лазит и не устанавливает переменные окружения руками в Win2k/XP/... , то мне кажется, что Питон некорректно выполняет функцию os.path.expanduser("~"). Или я не прав? А если я прав, то стоит ли это считать багом питона?
Запуск на Windows (у меня Win2K SP4) дает следующее:
Python 2.4 (#60, Nov 30 2004, 11:49:19) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os.path
>>> os.path.expanduser("~")
'C:\\'Если посмотреть установленные переменные окружения, то окажется, что переменной HOME естественно нет, вместо нее есть:
HOMEDRIVE C: HOMEPATH \
и похоже, что из них формируется путь к $HOME.
Но это суть неверно для Windows серии NT: конкретно для 2000, XP и более поздних версий.
В этих ОС для хранения настроек пользователя используются подкаталоги каталога "Documents and settings", типично располагающегося на диске C:.
И в переменных окружения есть такое:
USERPROFILE C:\Documents and Settings\bialix USERNAME bialix ALLUSERSPROFILE C:\Documents and Settings\All Users APPDATA C:\Documents and Settings\bialix\Application Data
В каталог $APPDATA все хорошо написанные приложения складывают свои настройки в папки с названием программы или продукта. В том числе так поступают и мозилловские программы (Firefox, Thunderbird). В каталоге $USERPROFILE я обнаружил каталог с настройками GIMP: .gimp-2.2/. Но все питоновские программы валят свои настройки именно в C:\\, так в корне диска C были обнаружены каталоги с настройками .idlerc/, .boa-constructor/
Вот в этом суть моего вопроса, в котором я до конца не уверен. Поскольку ни один простой пользователь практически никогда не лазит и не устанавливает переменные окружения руками в Win2k/XP/... , то мне кажется, что Питон некорректно выполняет функцию os.path.expanduser("~"). Или я не прав? А если я прав, то стоит ли это считать багом питона?
