簡體   English   中英

python 如何從文件中讀取字節類型數據並將其轉換為 utf-8?

[英]python how to read bytes type data from file and convert it to utf-8?

我需要從 test.txt 讀取文件內容並將其轉換為 utf-8 編碼(可讀中文)。

這似乎是一項簡單的任務,但使用 open()、codecs.open() 等,它總是將行讀取為 str 類型,而不是將其識別為字節。

with codecs.open(input_file, 'rb') as reader:
    for line in reader:
        print(type(line))
        # if it is bytes
        #print(line.decode('utf-8'))

我的輸入文件內容是 test.txt:

b'\xe5\x95\x8a \xe6\x9c\x89 \xe4\xbb\x80 \xe4\xb9\x88 \xe4\xba\x8b \xe5\x95\x8a \xe6\x9c\x89 \xe4\xbb\x80 \xe4\xb9\x88 \xe4\xba\x8b \xe7\xbb\x99 \xe6\x88\x91 \xe6\x89\x93 \xe7\x94\xb5 \xe8\xaf\x9d \xe5\x95\x8a \xe5 \x97\xaf \xe5\x97\xaf \xe5\xa5\xbd \xe5\xa5\xbd \xe5\xa5\xbd \xe5\xa5\xbd \xe5\x86\x8d \xe8\xa7\x81 \xe5\x93 \x8e \xe5\x86\x8d \xe8\xa7\x81 \xe5\x97\xaf \xe5\xa5\xbd'

我期望它如下,但需要從文件中讀取內容:

控制台上的預期結果示例

我該怎么做? 我用谷歌搜索了很多,但沒有運氣。 請幫忙。

您應該將編碼指定為 open 的參數,即

import codecs
with codecs.open("test.txt", encoding="utf-8") as reader:
    for line in reader:
        print(line)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM