Форум сайта python.su
0
Когда получаю путь к домашней папке пользователя с помощью
os.path.expanduser('~')homefolder = (os.getenv('HOME'))
if homefolder == "None":
homefolder = os.getenv('USERPROFILE')Офлайн
36
Попробуйте
homefolder = homefolder.decode(sys.getfilesystemencoding())
Офлайн
0
pyuserСпасибо за ответ, но не сработало. Пишет:
Попробуйтеhomefolder = homefolder.decode(sys.getfilesystemencoding())
Офлайн
0
vovaneВ самом начале файла(1 строка) поставьpyuserСпасибо за ответ, но не сработало. Пишет:
Попробуйтеhomefolder = homefolder.decode(sys.getfilesystemencoding())
UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 9-15: ordinal not in range(128)
Я правильно понимаю, что система сообщает что использует ASCII для имен файлов, а decode натыкается при этом на кириллицу и выдает ошибку?
## -*- coding: cp1251 -*-
import sys
reload( sys )
sys.setdefaultencoding( 'cp1251' )
Офлайн
0
В семерке от 1251 разве не отошли? Да и кроме того, должен же быть какой-то другой способ. Странно еще вот что - создал учетку с русским именем, и прога спокойно запустилась. Косяк явно в чем-то другом, использовал все тот же
homefolder = homefolder.decode(sys.getfilesystemencoding())
Офлайн
0
vovaneА Вы только для семерки программы создаете? сейчас соотношение систем примерно 50 на 50. Причем ХР встречается достаточно часто.
В семерке от 1251 разве не отошли?
Офлайн
0
SergMareНет, почему же. Просто прогу пишу чисто для себя, да и она у меня первая серьезная на питоне:) А так, самым главным при написании её у меня было, чтобы она без модификации кода запускалась как на семёрке (ноут), так и на Maemo (мобильник).vovaneА Вы только для семерки программы создаете? сейчас соотношение систем примерно 50 на 50. Причем ХР встречается достаточно часто.
В семерке от 1251 разве не отошли?
Отредактировано (Фев. 26, 2012 17:42:20)
Офлайн
0
Вообщем если нет определенного кодинга в начале модуля питона (## -*- coding: cp1251 -*-), питон по умолчанию обрабатывает строки в ‘ascii.
Именно поэтому возникают ошибки в Вашем случае.
Кодировку естественно можно выбрать любую (попробуйте например ’utf8'), но оптимальная для винды именно 1251, конкретно в нашем региональном случае.
Офлайн