我试图用Python3.8解码一个MIK-BULGARIAN编码https://en.wikipedia.org/wiki/MIK_(character_set)的文件。这是一种与ASCII相同的编码,但字节128-191是西里尔字母。该文件包含拉丁字母和西里尔字母。 我当前的解决方案运行良好,但处理大文件时速度相当慢。你能给我一些如何加速的建议吗(我知道这是一种伐木工人的方法,我愿意接受建议)
def opener(filename):
f = open(filename, "rb")
filetext = f.read()
cadText = translate(filetext)
f.close()
return cadText
mikdict = {
128: "А",
129: "Б",
130: "В",
131: "Г",
132: "Д",
....
188: "ь",
189: "э",
190: "ю",
191: "я"
}
def translate(textbytes):
goodText = ""
for txtbyte in textbytes:
if (txtbyte >= 128) and (txtbyte <= 191):
letter = str(mikdict.get(txtbyte))
else:
letter = chr(txtbyte)
goodText = goodText + letter
[代码]显然正确的答案是使用map()和lambda,因为它似乎比我最初的代码片段更有效
相关问题 更多 >
编程相关推荐