鱼C论坛

 找回密码
 立即注册
查看: 1271|回复: 3

[已解决]python读取txt文件报错

[复制链接]
发表于 2021-10-22 09:43:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
open之后,read()时总是提示:
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 11: illegal multibyte sequence

请问是什么原因啊,和视频里讲的不一样,无法操作。请大神指导,谢谢啦
最佳答案
2021-10-22 10:05:41
'gbk'无法解码
试试在open函数加上解码
f = open(xxx,encoding = 'utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-22 10:05:41 | 显示全部楼层    本楼为最佳答案   
'gbk'无法解码
试试在open函数加上解码
f = open(xxx,encoding = 'utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-10-22 12:30:06 | 显示全部楼层
使用cchardet判断字符编码(准确度高)
cchardet 比chardet准确度高,速度快。
检测文件编码

  1. import cchardet as chardet

  2. # 先检测出文件编码
  3. with open("test.txt", "rb") as f:
  4.     msg = f.read()

  5. enc = chardet.detect(msg) # 返回的是个字典 编码和准确度。如:{'encoding': 'UTF-8', 'confidence': 0.9900000095367432}
  6. print(enc)
  7. enc = enc['encoding']

  8. # 然后以指定编码打开文件
  9. with open("test.txt", "r", encoding=enc) as f:
  10.     print(f.read())
复制代码

网页编码判断

  1. import requests
  2. import cchardet

  3. res = requests.get('http://www.baidu.com/')
  4. rawdata  = res.content
  5. enc = cchardet.detect(rawdata)
  6. enc = enc['encoding']
  7. print(enc)
复制代码

评分

参与人数 1荣誉 +1 收起 理由
longway168 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-10-22 23:20:53 | 显示全部楼层
逃兵 发表于 2021-10-22 10:05
'gbk'无法解码
试试在open函数加上解码
f = open(xxx,encoding = 'utf-8')

感谢指导,我是百度完发现txt可以选择存储格式,我换成ANSI了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-8 07:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表