Форум сайта python.su
0
запускаю питон 2.7 ( питон 3 нет возможности использовать) с помощью команды
python file.py in.txt
в файле in.txt находятся русские символы ( кирилица) и английские символы
мне необходимо обработать их с помощью регулярных выражений.
я знаком с тем что в питоне 2.7 еще не было юникода и надо ВСЕ перевести в него ( и регулярку, и сам текст). Поэтому мне нужно понять, где у меня ошибка при переводе в юникод.
ниже текст скрипта file.py
#coding: utf-8 # load modules import re import sys #import codecs # read file, write file a = open(sys.argv[1],"r") s = a.readline() s = unicode(s, 'utf8') regexp = re.compile(u"[а-яА-ЯёЁa-zA-Z0-9]", flags=re.I + re.U) tt = re.findall(regexp, s) num = len(tt) c=0 b = open('/home/mimino/pyliyt.txt', 'w') while c < num: h=(tt[c]+':') h=h.strip() h=h.encode('utf8') b.writelines((h)+'\n') c+=1 # close files try: a.close() b.close() finally: print "all done"
File "file.py", line 13 regexp = re.compile(u"[▒-▒▒-߸▒a-zA-Z0-9]",flags=re.I + re.U) SyntaxError: (unicode error) 'utf8' codec can't decode byte 0xe0 in position 0: unexpected end of data
Отредактировано pulya (Окт. 26, 2013 18:36:47)
Офлайн
47
файл точно в utf-8 ?
Офлайн
253
pulyaУлыбнуло.
еще не было юникода
pulyaИ еще текст программы. Похоже что кодировка питоновского файла не соответствует. Ваш код у меня нормально ломается.
( и регулярку, и сам текст)
Офлайн
0
bismigalis
файл точно в utf-8 ?
Прикреплённый файлы:
in.txt (117 байт)
Офлайн
0
doza_and
Прикреплённый файлы:
pyliyt.txt (188 байт)
Офлайн
0
сам поправил свой код
ошибочная строка
regexp = re.compile(u"[а-яА-ЯёЁa-zA-Z0-9]", flags=re.I + re.U)
regexp = re.compile(u"[а-яА-ЯёЁa-zA-Z0-9]\w+", flags=re.I + re.U)
Офлайн
33
pulya
Ты понимаешь, что значат эти флаги ?
re.I + re.U
Офлайн
0
Budulianin
pulyaТы понимаешь, что значат эти флаги ?
Офлайн
33
pulya
Офлайн
0
Budulianin
Офлайн