Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 15, 2012 23:43:37

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

Python 2.7 OS WIN XP, на nix все ок пашет, при создани директори Windows Error 123,
пробовал по разному передовать бесполезно.
Код такой,

try:
	os.mkdir('C:\Documents and Settings\Администратор\Рабочий стол\photos\text')
except Exception, e:
	print e
Как я только со слэшами не эксперементировал..
М.б я переработал…
Но такой путь норм.. создает
u'C:\Documents and Settings\Администратор\Рабочий стол\889'
Стоит добавить в конец русские смимволы, или букву t как сразу летит Windows Error 123



Отредактировано mironich (Дек. 15, 2012 23:54:23)

Офлайн

#2 Дек. 16, 2012 01:19:00

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

Есть разница между двумя метдами:

os.mkdir
os.makedirs
У меня все работает без проблем.
Возможно вопрос в рекурсивности создания каталогов :)



Отредактировано 4kpt (Дек. 16, 2012 01:24:17)

Офлайн

#3 Дек. 16, 2012 01:25:20

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10015
Репутация: +  857  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

mironich
Как я только со слэшами не эксперементировал..
os.mkdir('C:\\Documents and Settings\\Администратор\\Рабочий стол\\photos\\text')



Офлайн

#4 Дек. 16, 2012 01:35:37

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

Тему можно,удалить а меня отправить спать, вместо юникода в софте я пихал строку в utf-8.
py.user.next Error 3 - Файл не существует….



Отредактировано mironich (Дек. 16, 2012 01:35:59)

Офлайн

#5 Дек. 16, 2012 02:41:03

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

mironich
Я же Вам дал ответ.
Первый метод создает только один каталог по указанному пути (если путь не существует или в пути отсутсвует хотя-бы одна папка - получается ошибка Error 3).
Второй метод каталоги создает рекурсивно, т.е. он также создает вложенные каталоги которых не существует по указанному пути. Ошибка генерируется, если такой путь существует полностью или не может быть создан…



Офлайн

#6 Дек. 16, 2012 04:47:11

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

4kpt, спасибо, позже попробую, “рекурсивности” - я не правильно интерпритировал)



Офлайн

#7 Дек. 18, 2012 16:32:42

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

4kpt, таки не понял связи..
Путь существует, кроме последней папки(которую и надо создать).



Офлайн

#8 Дек. 18, 2012 19:36:23

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Русские символы в пути python winXP

mironich
Каким образом я должен понять, существует ли полный путь. Мне приходится догадываться о Ваших неправильных действиях по коду ошибки.

mironich
py.user.next Error 3 - Файл не существует….



Привожу пример:
os.mkdir("c:\\Pych\\Up")
Папка Pych не существует (метод mkdir не может создавать рекурсивные пути). Следовательно выдает ошибку:
WindowsError: [Error 3] : 'c:\\Pych\\Up'
Если же путь сущестует весь (кроме последней папки в пути):
os.mkdir("c:\\Python27\\Up")
Ошибки не происходит и папка создается.

Для первого случае, когда не знаешь про фактическую структуру дерева каталогов, рационально использвать
os.makedirs("c:\\Pych\\Up")
Что позволит рекурсивно создать каталоги, даже если отдельных папок в пути нет…



Отредактировано 4kpt (Дек. 18, 2012 19:40:54)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version