Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 4, 2016 13:59:03

andrei186
Зарегистрирован: 2016-02-04
Сообщения: 90
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

Пытаюсь сохранять скриншоты в JPG файле при помощи

from PIL import ImageGrab
def savescreen(a):
im =ImageGrab.grab()
im.save(a+".jpg")
savescreen(n)

Для латинских строк работает ОК.
Для кириллицы получается следующее.
Если n=“ффф” файл сохраняется под именем ффф.jpg
Если добавить n=n.encode('utf-8') выдает ошибку:
UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xd1 in position 0: ordinal not in range(128)
Как сохранить файл в кириллице?

Офлайн

#2 Фев. 4, 2016 14:15:42

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

Офлайн

#3 Фев. 4, 2016 14:24:00

Vigi
От: Курья, Алтай
Зарегистрирован: 2015-02-07
Сообщения: 144
Репутация: +  8  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

а у мну на win все кока кола

Офлайн

#4 Фев. 4, 2016 14:34:54

andrei186
Зарегистрирован: 2016-02-04
Сообщения: 90
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

FishHook
https://www.python.org/dev/peps/pep-0263/
это не совсем то.
#coding: utf-8 у моем РУ файле прописано, и килиллица ВНУТРИ текстового файла сохранятеся корректно.
Проблема в кириллическом имени файла

Офлайн

#5 Фев. 4, 2016 14:37:36

andrei186
Зарегистрирован: 2016-02-04
Сообщения: 90
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

Vigi
а у мну на win все кока кола
ну не всем же такая везуха
Может это зависит от настроек Виндов? Либо дело в моем Питоне 2.7 - а у Вас Питон 3

Офлайн

#6 Фев. 4, 2016 14:52:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

andrei186
#coding: utf-8 у моем РУ файле прописано,
Ну а сам то файл в какой кодировке?



Офлайн

#7 Фев. 4, 2016 15:32:20

andrei186
Зарегистрирован: 2016-02-04
Сообщения: 90
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

FishHook
Ну а сам то файл в какой кодировке?
А в какой IDLE в Питон 2.7 кодирует по умолчанию?
На всяк случай открыл в Блокноте и сохранил как utf-8 - не полегчало

Офлайн

#8 Фев. 4, 2016 19:57:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

:) Боюсь побоев с вашей стороны но скажу.

Правильное решение использовать https://pypi.python.org/pypi/transliterate !

И от настроек виндов зависит и для python 2.7 желательно n=u“ффф”

Для замыкания эксперимента проделайте

dir *.* >1
ls *.* >1
выбрав то, что подходит для вашей ОС. И посмотрите что и в какой кодировке получилось.



Офлайн

#9 Фев. 5, 2016 10:45:47

andrei186
Зарегистрирован: 2016-02-04
Сообщения: 90
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как сохранить файл в кириллице?

doza_and
Боюсь побоев с вашей стороны но скажу.
Бить будете, Папаша? (М. Булгаков. Собачье сердце)
А где я проделаю
dir *.* >1
ls *.* >1
?
Я на Виндах
IDLE вщзвращает
SyntaxError: invalid syntax
Виндовая командная строка про dir ничего не возвращает, про ls вщзвращает что она не явл командой или исполняемым файлом
На всяк случай залез в Терминал Дебиана - тоже ничго не возвращает

Отредактировано andrei186 (Фев. 5, 2016 12:21:07)

Офлайн

#10 Фев. 5, 2016 14:55:13

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

Как сохранить файл в кириллице?

andrei186
Если n=“ффф” файл сохраняется под именем ффф.jpg
>>> 'ффф'.encode('utf-8').decode('cp1251')
'ффф'
>>>
Значит, у тебя исходный файл в utf-8, а винда раскодирует его в cp1251.

andrei186
UnicodeDecodeError: 'ascii' codec can't decode
Это значит, что у тебя второй питон и в нём не указана кодировка в исходном файле.

Переведи исходник в utf-8 и сверху напиши
# coding: utf-8

Потом выполни
open(u'имя', 'w').write('abcd')
и посмотри, создался ли файл правильно.



Отредактировано py.user.next (Фев. 5, 2016 15:22:12)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version