Найти - Пользователи
Полная версия: Проблемма в h=string.index(line,i)
Начало » Python для новичков » Проблемма в h=string.index(line,i)
1 2
Moonbite2006
Хмм… вообщем изначально предполагалось как работа с текстом) а как тест шли строки… То есть для работы с большим текстом можно разбивать текст на куски, определенной длинны и прогонять их в функции по очередности?
Добавил туда функцию брать текст из файла, опять проблема с кодировкой)) Дело в том, что берется из файла где одна кодировка, а запускается все в консоли, где cp866. В shelle все работает норм, а вот как перекодировать под консоль не понял. Попробовал unicode с выбраной кодировкой и encoding() - не помогло:(. Почитал про base64 модуль, но как я понял он не для того сущствует. Если не трудно - напишите, а то запускать в консоле удобней, чем в шеле.
И ведь можно же сделать автоопределение кодировки? А то писать два варианта программы и для консоли и для шела это изврат.
Andity
Moonbite2006
“Использование Unicode в Python”
почитай тезисы.
Moonbite2006
Andity
Moonbite2006
“Использование Unicode в Python”
почитай тезисы.
Почитал… Посмотрел и т.д. Как я понял в программе изначально все надо делать в юникоде, а уже потом декодировать в нужную кодировку? А также существует проблема не явного декодирования.
Все это хорошо, вставил такую строку, в двух местах… в месте где строке присваивается строка из файла:
document.decode("cp866")
и уже на всякий пожарный при выводе результата конечного на экран:
temp_st.decode("cp866")
Результат неизменный… все идет не в той кодировке. Подумал что нужно предварительно присвоить это все дело новой переменной, но и тут ждало огорчение. Выдал ошибку UnicodeWarning. Сильно не бейте, может не внимательно читал все это дело, завтра с утра еще подумаю. Но, если не трудно подскажите в чем еще может быть трабл.
PooH
import codecs
document = codecs.open('<имя файла>', 'r', 'cp1251').read() #вместо cp1251 укажи кодировку файла
#теперь document у тебя в unicode
#но лучше обрабатывать построчно
for s in codecs.open('<имя файла>', 'r', 'cp1251'):
    #здесь работаем с s, s - в unicode
#тут я не помню, вроде питон сам должен преобразовать вывод к кодировке консоли
#во всяком случае у меня он это делает
#но можешь и сам преобразовать
print s.encode('cp866', 'replace') 
# 'replace' - для того,  чтобы при перекодировке 
#заменять на заполнитель символы, которых нет в cp866
Moonbite2006
Пух, благодарю) Неужели существует 1000 и 1 способ поменять кодировку? и еще не везде все и работает:( Не очень понял для чего указывать кодировку файла при открытии документа, ведь он читает строки в той кодировке, в какой написан файл, независимо от того что я ему напишу…
hellt
Moonbite2006
Пух, благодарю) Неужели существует 1000 и 1 способ поменять кодировку? и еще не везде все и работает:( Не очень понял для чего указывать кодировку файла при открытии документа, ведь он читает строки в той кодировке, в какой написан файл, независимо от того что я ему напишу…
советую не почитать тезисы а посмотреть видео, глядя в пдф к нему.
чоень хороший доклад Юревича, отпадут сразу многие вопросы.
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