Python3 将非英语字符转换为英语字符

abi*_*kay 4 string utf-8 char non-english python-3.x

我有一个文本文件,我读取文件,经过一些操作后,我将这些行放入另一个文件中。但输入文件有一些土耳其字符,例如“\xc4\xb0、\xc3\x96、\xc3\x9c、\xc5\x9e、\xc3\x87、\xc4\x9e”。我希望将这些字符转换为英文字符,因为当我以 UTF-8 编码打开文件时,这些字符不会显示。我的代码如下:

\n\n
for i in range (len(singleLine)):\n        if singleLine[i] == "\xc4\xb0":\n            singleLine.replace(singleLine[i:i+1],"I")\n        if singleLine[i] == "\xc3\x9c":\n            singleLine.replace(singleLine[i:i + 1], "U")\n        if singleLine[i] == "\xc3\x96":\n            singleLine.replace(singleLine[i:i + 1], "O")\n        if singleLine[i] == "\xc3\x87":\n            singleLine.replace(singleLine[i:i + 1], "C")\n        if singleLine[i] == "\xc5\x9e":\n            singleLine.replace(singleLine[i:i + 1], "S")\n        if singleLine[i] == "\xc4\x9e":\n            singleLine.replace(singleLine[i:i + 1], "G")\n    return singleLine\n
Run Code Online (Sandbox Code Playgroud)\n\n

但代码无法识别输入文件中的这些土耳其字符并将它们放入输出文件而不进行任何操作。

\n\n

识别这些字符的方法是什么?是否有基于 ASCII 代码的搜索或类似方法的特殊方法?

\n

Ign*_*ams 7

str实例是不可变的,因此str.replace()不会就地操作,而是返回结果。

\n

不要以困难的方式做事

\n
>>> import unidecode\n>>> unidecode.unidecode(\'\xc4\xb0,\xc3\x96,\xc3\x9c,\xc5\x9e,\xc3\x87,\xc4\x9e\')\n\'I,O,U,S,C,G\'\n
Run Code Online (Sandbox Code Playgroud)\n

注意:这不是脚本库,但只能通过命令行界面使用。

\n