我正在尝试使用python 3.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