如何将字节文字的txt文件读取为UTF-8字符串?

时间:2019-03-04 06:59:36

标签: python utf-8

我有一个.txt文件,其内容如下:

b'Afrikaans'
b'\xe1\x8a\xa0\xe1\x88\x9b\xe1\x88\xad\xe1\x8a\x9b'
b'\xd0\x90\xd2\xa7\xd1\x81\xd1\x88\xd3\x99\xd0\xb0'

如何将这些行转换为UTF-8字符串,以便输出如下所示:

Afrikaans
አማርኛ
Аҧсшәа

我尝试了这个,但是只得到了与字节字面量具有相同值的字符串:

    with open("encoded.txt", "rb") as filename:
        line = filename.readline().strip()
        while line:
            print(line.decode("utf-8"))
            line = filename.readline().strip()

1 个答案:

答案 0 :(得分:1)

这些行是Python文字,因此ast.literal_eval可以将它们解析为Python字节字符串:

import ast

with open('data.txt') as f:
    for line in f:
        print(ast.literal_eval(line).decode('utf8'))

输出:

Afrikaans
አማርኛ
Аҧсшәа