Найти - Пользователи
Полная версия: Как сохранить файл в кириллице?
Начало » Python для новичков » Как сохранить файл в кириллице?
1 2 3 4 5
andrei186
Пытаюсь сохранять скриншоты в 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)
Как сохранить файл в кириллице?
FishHook
https://www.python.org/dev/peps/pep-0263/
Vigi
а у мну на win все кока кола
andrei186
FishHook
https://www.python.org/dev/peps/pep-0263/
это не совсем то.
#coding: utf-8 у моем РУ файле прописано, и килиллица ВНУТРИ текстового файла сохранятеся корректно.
Проблема в кириллическом имени файла
andrei186
Vigi
а у мну на win все кока кола
ну не всем же такая везуха
Может это зависит от настроек Виндов? Либо дело в моем Питоне 2.7 - а у Вас Питон 3
FishHook
andrei186
#coding: utf-8 у моем РУ файле прописано,
Ну а сам то файл в какой кодировке?
andrei186
FishHook
Ну а сам то файл в какой кодировке?
А в какой IDLE в Питон 2.7 кодирует по умолчанию?
На всяк случай открыл в Блокноте и сохранил как utf-8 - не полегчало
doza_and
:) Боюсь побоев с вашей стороны но скажу.

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

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

Для замыкания эксперимента проделайте
dir *.* >1
ls *.* >1
выбрав то, что подходит для вашей ОС. И посмотрите что и в какой кодировке получилось.
andrei186
doza_and
Боюсь побоев с вашей стороны но скажу.
Бить будете, Папаша? (М. Булгаков. Собачье сердце)
А где я проделаю
dir *.* >1
ls *.* >1
?
Я на Виндах
IDLE вщзвращает
SyntaxError: invalid syntax
Виндовая командная строка про dir ничего не возвращает, про ls вщзвращает что она не явл командой или исполняемым файлом
На всяк случай залез в Терминал Дебиана - тоже ничго не возвращает
py.user.next
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')
и посмотри, создался ли файл правильно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB