鱼C论坛

 找回密码
 立即注册
查看: 869|回复: 5

[已解决]第28课 txt文件不能readline

[复制链接]
发表于 2020-4-2 05:22:17 | 显示全部楼层 |阅读模式

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

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

x
当我试图用 f=open() 打开一个txt文件并且 readline() 的时候,会报 UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 44: character maps to <undefined> 错误,这个怎么解决呢,求助!

  1. l=open('C:\\Users\\Zhang\\Desktop\\xiaohua.txt','r')
  2. l.readline()
复制代码


报错的具体内容:
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    l.readline()
  File "D:\python\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x90 in position 44: character maps to <undefined>
最佳答案
2020-4-2 07:45:43
  1. l=open('C:\\Users\\Zhang\\Desktop\\xiaohua.txt','r',encoding='UTF-8')
  2. l.readline()
复制代码

试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-2 07:24:55 From FishC Mobile | 显示全部楼层
错误提示是解码异常,出现了无法解码的字符。这说明相对于你当前(也即是默认的字符集)字符集太小了,应该换成编码更广的字符集
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 07:45:43 | 显示全部楼层    本楼为最佳答案   
  1. l=open('C:\\Users\\Zhang\\Desktop\\xiaohua.txt','r',encoding='UTF-8')
  2. l.readline()
复制代码

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

使用道具 举报

发表于 2020-4-2 08:46:33 | 显示全部楼层
应该是编码的问题 在 open()  里面多加一项  encoding = 'utf-8'   把编码转成utf-8  就能解决问题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-2 13:02:22 | 显示全部楼层
你的文件内容是什么?

可以试试这样:

  1. l=open('C:\\Users\\Zhang\\Desktop\\xiaohua.txt','r', encodin="utf-8")
  2. l.readline()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-3 10:16:37 | 显示全部楼层
报得错误类型是 UnicodeDecodeError ,也就是 编码出现错误,

将 encoding 的编码设置成 'utf-8'

代码:
  1. l=open('C:\\Users\\Zhang\\Desktop\\xiaohua.txt','r', encoding="utf-8")
  2. l.readline()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 14:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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