Python 从utf-8转换文本文件中读取随机行

Python 从utf-8转换文本文件中读取随机行,python,python-2.7,utf-8,type-conversion,Python,Python 2.7,Utf 8,Type Conversion,我有一个文本文件,里面有汉字 我想从该文本文件中随机读取一行并显示它,以下是我的代码: from random import randint num_lines = sum(1 for line in open('Chinese.txt')) num_lines = num_lines - 1 choice = raw_input('How many times do you want to play?') choice1 = int(choice) while choice1 > 0:

我有一个文本文件,里面有汉字

我想从该文本文件中随机读取一行并显示它,以下是我的代码:

from random import randint
num_lines = sum(1 for line in open('Chinese.txt'))
num_lines = num_lines - 1

choice = raw_input('How many times do you want to play?')
choice1 = int(choice)
while choice1 > 0:
    random_number = (randint(0,num_lines))

    with open('Chinese.txt') as inputFile:

        bytes = inputFile.readlines()
        unicodeText = bytes.decode('utf-8')
    print unicodeText[int(random_number)]
    choice1 = choice1 - 1

readlines生成一个行列表,您可以使用该列表进行随机选择

from random import randint, choice
...
        bytes = inputFile.readlines()
        random_line = choice(bytes)
    print random_line.decode("utf-8")

另外,在Python3中,bytes是一个变量,我建议将该变量重命名为其他变量

readlines生成一个行列表,您可以使用该列表进行随机选择

from random import randint, choice
...
        bytes = inputFile.readlines()
        random_line = choice(bytes)
    print random_line.decode("utf-8")

另外,在Python3中,bytes是一个变量,我建议将该变量重命名为其他变量

您不需要手动解码每一行。相反,请使用
io
模块以指定适当编码的文本模式打开文件。从文件中读取的所有字符串现在都是Unicode:

with open('Chinese.txt', 'r', encoding='utf-8') as inputFile:
    lines = inputFile.readlines()
    random_line = choice(lines)

# type(random_line)
# Unicode
print random_line

您不需要手动解码每一行。相反,请使用
io
模块以指定适当编码的文本模式打开文件。从文件中读取的所有字符串现在都是Unicode:

with open('Chinese.txt', 'r', encoding='utf-8') as inputFile:
    lines = inputFile.readlines()
    random_line = choice(lines)

# type(random_line)
# Unicode
print random_line