gpt4 book ai didi

Python re.findall 在 UTF-8 下失败,而其余脚本成功

转载 作者:太空宇宙 更新时间:2023-11-04 05:46:03 25 4
gpt4 key购买 nike

我有这个脚本可以读取大量用瑞典语编写的文本文件(通常带有 åäö 字母)。如果我遍历 ddictionary[],它会打印字典中的所有内容。但是,正则表达式(来自添加了 u'.*' 的原始输入)无法正确返回 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)

编辑:输出如下:

如果我输入:

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

的结果

最佳答案

在 Python 2.x 中,unicode 列表项通常输出转义,除非您遍历每个项或加入它们;也许尝试这样的事情:

result = ', '.join(result)

if len(result) > 0:
print ( u"Filnament är:\n %s \noch sökresultatet är:\n %s" % (d, result.decode('utf-8')))

输入:

katt

结果:

katter, räntor m. m. katter m- m., men exklusive r ä nor m. kattemedel subventionerar av totalkostnaderna, ofta — med eller utan kattas den nuvarande bilparkens kapitalvärde till 500 milj

关于Python re.findall 在 UTF-8 下失败,而其余脚本成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32277940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com