У меня есть этот скрипт, который читает большое количество текстовых файлов, написанных на шведском языке (часто с письмами åäö). Он печатает все, что просто отлично, из словаря, если я петлю над d
и dictionary[]
. Однако регулярное выражение (из исходного ввода с добавлением u'.*'
) не выполняется при правильном возврате utf-8.Python re.findall не работает в UTF-8, а остальная часть скрипта успешно завершена
# -*- coding: utf8 -*-
from os import listdir
import re
import codecs
import sys
print "Välkommen till SOU-sök!"
search_word = raw_input("Ange sökord: ")
dictionary = {}
for filename in listdir("20tal"):
with open("20tal/" + filename) as currentfile:
text = currentfile.read()
dictionary[filename] = text
for d in dictionary:
result = re.findall(search_word + u'.*', dictionary[d], re.UNICODE)
if len(result) > 0:
print "Filnament är:\n %s \noch sökresultatet är:\n %s" % (d, result)
Edit: Выход следующим образом:
Если я вход:
katt
Я получаю следующий вывод:
Filnament är: Betänkande och förslag angående vissa ekonomiska spörsmål berörande enskilda järnvägar - SOU 1929:2.txt
och sökresultatet är:
['katter, r\xc3\xa4ntor m. m.', 'katter m- m., men exklusive r \xc3\xa4 nor m.', 'kattemedel subventionerar', av totalkostnaderna, ofta \xe2\x80\x94 med eller utan', 'kattas den nuvarande bilparkens kapitalv\xc3\xa4rde till 500 milj.
Здесь Имя файла d
печатается правильно, но не результат re.findall
Что вы имеете в виду 'терпит неудачу при возвращении UTF-8'. Вызывает ли ошибка или просто не находит совпадение? –
Можете ли вы добавить образец ввода и показать, что это ваш выход? – Kasramvd
Пожалуйста, измените это на свой вопрос. Комментарии не достаточно хорошо отформатированы для такого рода вещей. –