Форум сайта python.su
33
acme_ag
В консоли ошибка:
'ascii' codec can't decode byte 0xd1 in position 26…
Офлайн
0
ну как ее можно неправильно указать? все так и указал.
encode-decode – все это пробовал. щас еще немного и за бубном полезу.
что интересно – совсем недавно вот регулярными выражениями очищал код от мусора. та же схема – в input.txt исходник с мусором, в output.txt – чистый код. все было нормально, русский текст сохранен.
что сейчас произошло – я не понимаю.
Отредактировано acme_ag (Сен. 2, 2014 17:59:56)
Офлайн
33
acme_ag
ну как ее можно неправильно указать?
acme_agДостаточно понимать, что и как работает, чтобы делать правильно.
щас еще немного и за бубном полезу.
Офлайн
1
#!/usr/bin/env python # -*- coding: utf-8 -*- import codecs with codecs.open('input.txt', 'r', 'utf-8') as textfile: a = [line.strip() for line in textfile] with codecs.open('output.txt', 'w', 'utf-8') as textfile: for line in a: textfile.write(line)
Отредактировано malya (Сен. 2, 2014 18:35:29)
Офлайн
0
malyaэто выдает UnicodeDecodeError: ‘utf8’ codec cant' decode byte 0xf2…
#-*-coding:utf8-*- import codecs with codecs.open("input.txt") as textfile: a = [line.strip() for line in textfile] file = open('output.txt', 'w') file.write(str(a)) file.close() f = codecs.open('output.txt','r', 'string-escape') k = f.read() file = open('output1.txt', 'w') file.write(str(k)) file.close()
['\xf2\xe5\xf0\xec\xee\xea\xeb\xe5\xe9 ...']
['термоклей... ']
Отредактировано acme_ag (Сен. 2, 2014 20:33:58)
Офлайн
33
acme_agТо же самое, что open, потому что ты кодировку не указал.
codecs.open(“input.txt”)
fout.write(str(a).decode('string-escape'))
acme_agНет, просто ты пишешь в файл такой текст:
Дело в настройках IDE?
>>> str(a) "['\\xd0\\xbe\\xd0\\xbb\\xd0\\xbe\\xd0\\xbb\\xd0\\xbe\\xd0\\xbe', '\\xd0\\xbe\\xd0\\xbb\\xd0\\xbe\\xd0\\xbb\\xd0\\xbe', '']"
>>> str(a).decode('string-escape') "['\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xbe', '\xd0\xbe\xd0\xbb\xd0\xbe\xd0\xbb\xd0\xbe', '']"
Отредактировано Budulianin (Сен. 2, 2014 21:05:10)
Офлайн
0
Budulianinда, осталось от предыдущего. не углядел.
То же самое, что open
Budulianin
Можешь не городить столько, а сразу писать
Офлайн
33
acme_ag
Отредактировано Budulianin (Сен. 2, 2014 21:12:08)
Офлайн
0
Я Лутца как раз сейчас читаю (Изучаем Python, 4).
Python 2 сознательно выбирал, т.к. много где писалось, что 3 пока еще молодой, не оброс библиотеками, с 2. на котором написано гораздо больше, плохо совместим. Возможно, не стоило.
За видео – спасибо. Посмотрю.
Офлайн
33
acme_agБрехню читал. Python2 ужё мёртвый.
что 3 пока еще молодой
Отредактировано Budulianin (Сен. 2, 2014 22:41:05)
Офлайн