从文本文件中读取一个随机行,将其从utf-8转换

时间:2016-02-15 16:53:58

标签: python python-2.7 utf-8 type-conversion

我有一个包含中文字符的文本文件。

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

foreach ($item in $item_array)
{
    $global:f_server_s = "SERVER123"
    $global:f_share = "$item"
    $global:f_path = "\\$global:f_server_s\$global:f_share"

    $obj_fileshare_list = New-Object -TypeName PSObject
    $obj_fileshare_list | Add-Member -Type NoteProperty -Name Name -Value "$global:f_share"
    $obj_fileshare_list | Add-Member -Type NoteProperty -Name Server -Value "$global:f_server"
    $obj_fileshare_list | Add-Member -Type NoteProperty -Name Path -Value "$global:f_path"
    $Fileshare_list += $obj_fileshare_list
}

2 个答案:

答案 0 :(得分:5)

readlines会生成一系列行,您可以使用random.choice随机选择。

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

此外,在Python 3中bytesbuilt-in,我建议将该变量重命名为其他内容。

答案 1 :(得分:0)

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

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

# type(random_line)
# Unicode
print random_line