gpt4 book ai didi

python - 将重音字符转换为拉丁字符而不影响 ElementTree

转载 作者:行者123 更新时间:2023-12-01 09:26:12 29 4
gpt4 key购买 nike

我试图弄清楚如何将所有重音字符( åéí ...)分别替换为其拉丁对应字符( aei ) )并且我尝试了几种方法来做到这一点,但它们都做了一些超出我理解的事情,使得 ElementTree 以后无法使用 .fromstring() 进行转换。 。

我还必须转义&字符,但我已经弄清楚了。

相关语法:

# -- coding: utf-8 --

import xml.etree.ElementTree as ET
import os
import re

path = "C:\\Users\\SuperUser\\Desktop\\audit\\audit\\saved\\audit"

root = ET.Element("root")

for filename in os.listdir(path):
with open(path + "\\" + filename) as myfile:
lines = myfile.readlines()

for line in lines:
line = re.sub(r"&(?!#\d{3};|amp;)", "&", line)
xmlVal = ET.fromstring(line)

错误发生在最后一行,其他解决方案提示 UnicodeEncodeError: 'ascii' codec can't encode character u'\xc4' in position 161: ordinal not in range(128) ,或类似的错误。

最佳答案

尝试使用 unidecode 模块

例如:

import xml.etree.ElementTree as ET
import os
import re
import unidecode


path = "C:\\Users\\SuperUser\\Desktop\\audit\\audit\\saved\\audit"

root = ET.Element("root")

for filename in os.listdir(path):
with open(path + "\\" + filename) as myfile:
lines = myfile.readlines()

for line in lines:
line = unidecode.unidecode(line)
xmlVal = ET.fromstring(line)

关于python - 将重音字符转换为拉丁字符而不影响 ElementTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50371478/

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