Найти - Пользователи
Полная версия: open()
Начало » Python для новичков » open()
1 2
py.user.next
f = open('Connect (2).txt', encoding='utf-16')
print(f.read())

f = open('Connect (2).txt', encoding='utf-16le')
print(f.read()[1:])
alexbadaloff
py.user.next
Подскажите, пожалуйста, есть ли возможность программно определить кодировку исходного файла?
pyuser
alexbadaloff
Подскажите, пожалуйста, есть ли возможность программно определить кодировку исходного файла?
Попробуйте что-нибудь из chardet, cchardet, charade. (все можно взять на pypi.python.org)
Ilyxa
Спасибо
py.user.next
alexbadaloff
есть ли возможность программно определить кодировку исходного файла?
если такая потребность возникла, то это странно
это типа вопроса “есть ли возможность залезть на шкаф?”, ответ “есть, можно применить лестницу”
кодировка должна быть известна (сообщена)
alexbadaloff
py.user.next
если такая потребность возникла, то это странно
это типа вопроса “есть ли возможность залезть на шкаф?”, ответ “есть, можно применить лестницу”
кодировка должна быть известна (сообщена)

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

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

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

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

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

Например при поиске нужной инфы на файло-помойках (серверы, старые компы и т.п.)
py.user.next
alexbadaloff
Неизвестно. Просто указан расширение txt.
у бинарного тоже можно расширение такое сделать

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

я думал, у тебя есть свой клиент и свой сервер, сервер принимает файл от клиента, и клиент может задать кодировку и сообщить серверу
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