Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 2, 2016 16:57:41

Resperator
Зарегистрирован: 2015-11-10
Сообщения: 40
Репутация: +  -1  -
Профиль   Отправить e-mail  

Кодировки Python.

НЕАКТУАЛЬНО!

Суть вот в чем. По ходу выполнения происходит считывание большого количества строк с .txt
В файле (.txt) текст в UTF-8
В Python'е кодировка по умолчанию cp1251
Как только дело доходит до строк со специфичными символами - все ломается. Как по умолчанию использовать UTF-8 в Python, либо еще что-то в этом роде.

Собс-на сам лог:

File “D:\Python\lib\encodings\cp1251.py”, line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)
UnicodeDecodeError: ‘charmap’ codec can't decode byte 0x98 in position 256: character maps to <undefined>

Пример такого .txt ниже.
Код простейший.

f=open('111.txt','r')
for line in f:
z=line
z=z*2
print(z)

Отредактировано Resperator (Ноя. 4, 2016 12:01:38)

Прикреплённый файлы:
attachment 111.txt (2,6 KБ)

Офлайн

#2 Ноя. 3, 2016 16:14:47

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Кодировки Python.

http://python.su/forum/search/?action=search&keywords=юникод&author=&forum=0&search_in=all&sort_by=0&sort_dir=DESC&show_as=topics



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Ноя. 3, 2016 20:28:23

Resperator
Зарегистрирован: 2015-11-10
Сообщения: 40
Репутация: +  -1  -
Профиль   Отправить e-mail  

Офлайн

#4 Ноя. 3, 2016 21:54:26

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Кодировки Python.

python3

 open(..., encoding='utf8')



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Ноя. 4, 2016 08:43:44

Resperator
Зарегистрирован: 2015-11-10
Сообщения: 40
Репутация: +  -1  -
Профиль   Отправить e-mail  

Кодировки Python.

JOHN_16
python3
В этом то и суть. Сие команда не помогает.

Traceback (most recent call last):
File “C:\Users\****\Desktop\****.py”, line 157, in <module>
for line in f:
File “D:\Python\lib\encodings\cp1251.py”, line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)
UnicodeDecodeError: ‘charmap’ codec can't decode byte 0x98 in position 256: character maps to <undefined>

Офлайн

#6 Ноя. 4, 2016 10:47:20

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Кодировки Python.

 with open('111.txt', "rt", encoding="utf-8") as f:
    z = f.read()
    for i in z:
        print(i)

Прекрасно работает!


 
 

 

 

 

 



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#7 Ноя. 4, 2016 11:07:53

Resperator
Зарегистрирован: 2015-11-10
Сообщения: 40
Репутация: +  -1  -
Профиль   Отправить e-mail  

Кодировки Python.

ZerG
with open('111.txt', “rt”, encoding=“utf-8”) as f:
z = f.read()
for i in z:
print(i)
Таки да. Пропишите пожалуйста еще тот случай, где считывание происходит не по символу, а по строке.

Офлайн

#8 Ноя. 4, 2016 11:14:29

Resperator
Зарегистрирован: 2015-11-10
Сообщения: 40
Репутация: +  -1  -
Профиль   Отправить e-mail  

Кодировки Python.

ZerG
Переписал сам. Вроде правильно. Позже отпишу.

with open('splitfiles_5.txt', “rt”, encoding=“utf-8”) as f:
for line in f:
print(line)

Офлайн

#9 Ноя. 4, 2016 11:24:53

Resperator
Зарегистрирован: 2015-11-10
Сообщения: 40
Репутация: +  -1  -
Профиль   Отправить e-mail  

Кодировки Python.

ZerG
Нашел новую проблему. При записи Питон создает .txt в кодировке ANSI. Как создать с помощью него txt именно в UTF-8 для дальнейшей записи.

Офлайн

#10 Ноя. 4, 2016 11:31:06

Resperator
Зарегистрирован: 2015-11-10
Сообщения: 40
Репутация: +  -1  -
Профиль   Отправить e-mail  

Кодировки Python.

Ибо при записи определенных символов происходит краш. Скажем такого �

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version