doza_and
Я бы уже давно так сделал, но в этом и проблема. При попытке перекодировать в ср1251 при последующем открытии в кодировке 1251 выпадает ошибку и говорит, что не может прочитать какие-то символы.
PooHкстати да, совсем забыл
Не знаю зачем вам это нужно, но и у encode и у decode есть параметр errors, если его установить в ‘ignore’, то символы, которых нет в выбранной кодировке будут пропускаться.
f = open('1.txt') txt = f.read().decode('utf-8',errors='ignore') f.close() f = open('2.txt','w') f.write(txt.encode('cp1251')) f.close()
nik.iwan2017дык покажи свой код и ашипки. накостылить всяко можно
Есть идеи?
#!/usr/bin/env python # -*- coding:utf-8 -*- import re f = open('1.txt') txt = f.read().decode('utf-8',errors='ignore') f.close() lst = re.findall("[+\d]+",txt) for i in lst: if i.startswith('+'):print i
nik.iwan2017Сдается мне вы в трех соснах заблудились. Когда открываете для поиска регуляркой кодировку указываете? А лучше скажите задачу целиком, что выдрать оттуда хотите?
Суть в том, что что мне надо отпарсить файл (получить телефон, адрес, время) но из-за этой кодировки ничего не получается.
Есть идеи?
RodegastНу если человеку нужно только выдрать текст, то возможно нет смысла разбирать неизвестный формат. Не зря же существуют утилитки типа strings.
Ещё раз повторяю: у тебя бинарный файл и парсить его нужно как бинарник. Я бы на твоём месте попытался бы это сделать через http://kaitai.io/
#!/usr/bin/env python3
with open('1.5', 'rb') as fin:
data = fin.read()
text = data.decode('utf-8', 'ignore')
out = text.encode('cp1251', 'ignore')
with open('1.5.out', 'wb') as fout:
fout.write(out)
PooHпоходу ТС не врубается, что питон в юникоде работает
Сдается мне вы в трех соснах заблудились.
#!/usr/bin/env python # -*- coding:utf-8 -*- import re f = open('1.5') txt = f.read().decode('utf-8',errors='ignore') f.close() lst = txt.split('"}') for i in lst: print '*new line' l = re.findall(ur'[а-яА-Я0-9+(){}"|;:., ]+',i) print ' '.join(l) + '"}'