python3自定义编码mik保加利亚语

python3自定义编码mik保加利亚语,python,character-encoding,Python,Character Encoding,我试图用Python3.8解码一个MIK-保加利亚编码的文件。这是一种与ASCII相同的编码,但字节128-191是西里尔字母。该文件包含拉丁字母和西里尔字母。 我当前的解决方案运行良好,但处理大文件时速度相当慢。你能给我一些如何加速的建议吗(我知道这是一种伐木工人的方法,我愿意接受建议) def开启器(文件名): f=打开(文件名为“rb”) filetext=f.read() cadText=翻译(文件文本) f、 关闭() 返回cadText 米克迪克特={ 128: "А", 129:

我试图用Python3.8解码一个MIK-保加利亚编码的文件。这是一种与ASCII相同的编码,但字节128-191是西里尔字母。该文件包含拉丁字母和西里尔字母。 我当前的解决方案运行良好,但处理大文件时速度相当慢。你能给我一些如何加速的建议吗(我知道这是一种伐木工人的方法,我愿意接受建议)

def开启器(文件名):
f=打开(文件名为“rb”)
filetext=f.read()
cadText=翻译(文件文本)
f、 关闭()
返回cadText
米克迪克特={
128: "А",
129: "Б",
130: "В",
131: "Г",
132: "Д",
....
188: "ь",
189: "э",
190: "ю",
191: "я"
}
def翻译(文本字节):
goodText=“”
对于textbytes中的txtbyte:

如果(txtbyte>=128)和(txtbyte[code],显然正确的答案是使用map()和lambda,因为它似乎比我最初的代码片段更有效

def translate(input):
    newChars = map(lambda x: bytes([x]) if (x < 128) else bytes(mik.mikdict.get(x), "utf-8") if (x <= 191) and (x >= 128) else b"", input)
    res = b''.join(newChars).decode("utf-8")
return res
def翻译(输入):
newChars=map(λx:bytes([x])if(x<128)else字节(mik.mikdict.get(x),“utf-8”)if(x=128)else b“,输入)
res=b“”。加入(newChars)。解码(“utf-8”)
返回res

[code]显然正确的答案是使用map()和lambda,因为它似乎比我最初的代码片段更有效

def translate(input):
    newChars = map(lambda x: bytes([x]) if (x < 128) else bytes(mik.mikdict.get(x), "utf-8") if (x <= 191) and (x >= 128) else b"", input)
    res = b''.join(newChars).decode("utf-8")
return res
def翻译(输入):
newChars=map(λx:bytes([x])if(x<128)else字节(mik.mikdict.get(x),“utf-8”)if(x=128)else b“,输入)
res=b“”。加入(newChars)。解码(“utf-8”)
返回res

See这是否回答了您的问题?See这是否回答了您的问题?