Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 12, 2013 01:10:25

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

open()

f = open('Connect (2).txt', encoding='utf-16')
print(f.read())

f = open('Connect (2).txt', encoding='utf-16le')
print(f.read()[1:])



Отредактировано py.user.next (Апрель 12, 2013 01:25:15)

Офлайн

#2 Апрель 12, 2013 09:54:01

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

open()

py.user.next
Подскажите, пожалуйста, есть ли возможность программно определить кодировку исходного файла?



————————–
Истина где-то рядом

Офлайн

#3 Апрель 12, 2013 10:05:08

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

open()

alexbadaloff
Подскажите, пожалуйста, есть ли возможность программно определить кодировку исходного файла?
Попробуйте что-нибудь из chardet, cchardet, charade. (все можно взять на pypi.python.org)



Офлайн

#4 Апрель 12, 2013 13:54:25

Ilyxa
Зарегистрирован: 2013-04-11
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

open()

Спасибо

Офлайн

#5 Апрель 12, 2013 17:03:38

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

open()

alexbadaloff
есть ли возможность программно определить кодировку исходного файла?
если такая потребность возникла, то это странно
это типа вопроса “есть ли возможность залезть на шкаф?”, ответ “есть, можно применить лестницу”
кодировка должна быть известна (сообщена)



Отредактировано py.user.next (Апрель 12, 2013 17:04:30)

Офлайн

#6 Апрель 15, 2013 12:29:29

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

open()

py.user.next
если такая потребность возникла, то это странно
это типа вопроса “есть ли возможность залезть на шкаф?”, ответ “есть, можно применить лестницу”
кодировка должна быть известна (сообщена)

Думаю проблема может возникнуть при обработке файлов, приходящих со стороны. Может получиться так, что пришлют файл с плохой кодировкой, например сменится человек или ОС поменяют, где умолчания другие были. И если обработка таких файлов осуществлялась автоматически, то будут проблемы. Поэтому я и задал этот вопрос, вдруг есть простой способ узнать кодировку файлов в питоне (я то новичок, пока азы изучаю). Хотелось бы видеть что-то вида:

f = open('Connect (2).txt')
x = f.getCoding();
print(x)
И ответом получить:
>>> utf-16

Но раз таких простых путей нет (а жаль), то придётся уже анализировать прочитанные данные.



————————–
Истина где-то рядом

Отредактировано alexbadaloff (Апрель 15, 2013 12:30:18)

Офлайн

#7 Апрель 19, 2013 08:58:31

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

open()

alexbadaloff
Может получиться так, что пришлют файл с плохой кодировкой, например сменится человек или ОС поменяют, где умолчания другие были.
Как создаётся файл ?



Офлайн

#8 Апрель 19, 2013 09:10:43

alexbadaloff
От: Иваново
Зарегистрирован: 2013-04-11
Сообщения: 198
Репутация: +  16  -
Профиль   Отправить e-mail  

open()

py.user.next
Как создаётся файл ?
Неизвестно. Просто указан расширение txt.

Я после того как задал такой вопрос, про автоузнавание кодировки, где-то на просторах инета, видел способ. То есть это вполне реально. Можно тут поспорить, о регламентах присылаемых файлов, об автоматизации подготавливаемых данных на стороне клиента или неких проверках. Но гибкости меньше.

Кстати, подумал, вот еще где может это пригодиться:

Например при поиске нужной инфы на файло-помойках (серверы, старые компы и т.п.)



————————–
Истина где-то рядом

Отредактировано alexbadaloff (Апрель 19, 2013 11:59:57)

Офлайн

#9 Апрель 28, 2013 07:51:30

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

open()

alexbadaloff
Неизвестно. Просто указан расширение txt.
у бинарного тоже можно расширение такое сделать

alexbadaloff
То есть это вполне реально.
не, это реально; если нужно распознать кодировку, то нужно определить признаки каждой кодировки и сопоставить их

я думал, у тебя есть свой клиент и свой сервер, сервер принимает файл от клиента, и клиент может задать кодировку и сообщить серверу



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version