首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python如何从文件中读取字节类型数据并将其转换为utf-8?

python如何从文件中读取字节类型数据并将其转换为utf-8?
EN

Stack Overflow用户
提问于 2022-07-27 09:52:55
回答 1查看 209关注 0票数 1

我需要从test.txt读取文件内容,并将其转换为utf-8编码(可读中文)。

这似乎是一个简单的任务,但使用open()、codecs.open()等,它总是将行读入str类型,而不是将其识别为字节。

代码语言:javascript
复制
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‘前缀完全相同,并将其标记为字节类型:

b'\xe5\x95\x8a \xE6\x8c\x89\xE4\xb9 \xe4\xb9\x88 \xe4\xb5 \xe5\x95\x8a \xe6\x9c\x89 \xe4\xbb\x80 \xe4\xb9\x88 \XE4\xba\xba\xb7\xb7\XE6\X91\XE6\X93\x9\x94\xb8\xaf\xbd\x95\x5\xa5\x5\xa5\x5\xb5\x5\xbd\x5\xbd\x5\x5\xa5\x5\x5\xe5\xa5\xbd \xe5\x86\x8d \xe8\xa7\x81 \xe5\x93\x8e \xe5\x86\x8d \xe8\xa7 \xe5\x97\xaf \xa5\xbd\xa5\xbd‘

我所期望的内容如下,但需要从文件中读取内容:

代码语言:javascript
复制
>>> line = 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'
>>> print(line.decode('utf-8'))
啊 有 什 么 事 啊 有 什 么 事 给 我 打 电 话 啊 嗯 嗯 好 好 好 好 再 见 哎 再 见 嗯 好

我该怎么做呢?我搜索了很多,但没有运气。请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2022-07-27 10:03:13

应该将编码指定为要打开的参数,即

代码语言:javascript
复制
import codecs
with codecs.open("test.txt", encoding="utf-8") as reader:
    for line in reader:
        print(line)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73135795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档