鱼C论坛

 找回密码
 立即注册
查看: 1474|回复: 7

[已解决][文件读取问题]关于028讲动动手和029讲一个任务

[复制链接]
发表于 2020-8-23 14:57:05 | 显示全部楼层 |阅读模式

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

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

x
我系统是Mac OSX 10.11.6,系统语言是繁体中文(因为不知道有没有影响所以说明一下)
028讲动动手的作业如果直接打开.mp3文件

028动动手

028动动手

如果用二进制方式打开,.write()无法写入,会报错提示只能写入字符串

然后到了029讲的动动手,Mac自带的解压程序无法解压下载的.zip课件,会提示目录错误,我就用了RAR Extractor Lite解压(不知道会不会对编码有影响所以写出来)
.read()再次报错

029一个任务

029一个任务


btw 我打开我这台本本里下载的其它txt文件用python打开好像都会出utf-8编码无法解码的问题,我用自带我文字编辑程序打开后保存为utf-8编码依然打不开。
顺便说一个可能相关的问题:我用python新建一个txt文档然后写入,每个中文字符占用的是三个字节。

我就想问一下如何解决这个utf-8编码无法解码的问题
最佳答案
2020-8-23 15:09:49


你先试试 open 里面加上参数 encoding = 'gbk' 试试看,如果也是报错,那你试试下面的方法

你用记事本打开你的这两个报错的文件,然后将这两个文件重新另存为时候会叫你选择保存的编码 格式

你选择 UTF-8 ,然后将 open 带上参数 encoding =  'UTF-8' 重新运行代码尝试看看

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

使用道具 举报

发表于 2020-8-23 15:04:13 | 显示全部楼层
a= open('xxxxx.txt',encoding='utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-23 15:09:49 | 显示全部楼层    本楼为最佳答案   


你先试试 open 里面加上参数 encoding = 'gbk' 试试看,如果也是报错,那你试试下面的方法

你用记事本打开你的这两个报错的文件,然后将这两个文件重新另存为时候会叫你选择保存的编码 格式

你选择 UTF-8 ,然后将 open 带上参数 encoding =  'UTF-8' 重新运行代码尝试看看

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

使用道具 举报

 楼主| 发表于 2020-8-23 15:10:36 | 显示全部楼层

你好,设置了编码utf-8打开依然报错

>>> a=open('/Users/apple/Documents/python/029文件:一个任务(课件+源代码)/课堂练习/record.txt',encoding='utf-8')
>>> a.read()
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a.read()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbf in position 2: invalid start byte
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-23 15:18:05 | 显示全部楼层
白晝裡的星星 发表于 2020-8-23 15:10
你好,设置了编码utf-8打开依然报错

>>> a=open('/Users/apple/Documents/python/029文件:一个任务( ...



请尝试 3 L 操作方法,应该可以解决你的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-23 15:32:52 | 显示全部楼层
Twilight6 发表于 2020-8-23 15:18
请尝试 3 L 操作方法,应该可以解决你的问题

谢谢,在后面加上encoding='gbk'或者encoding='cp936'确实可以正常读取了。
可是有些txt文件我是保存为utf-8编码的,为什么python utf-8编码反而无法解码,gbk却可以打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-23 15:37:30 | 显示全部楼层
白晝裡的星星 发表于 2020-8-23 15:32
谢谢,在后面加上encoding='gbk'或者encoding='cp936'确实可以正常读取了。
可是有些txt文件我是保存为u ...

你保存的编码应该不是 utf-8 的,你重新认真去保存一次看看,不然不会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-23 16:55:52 | 显示全部楼层
Twilight6 发表于 2020-8-23 15:37
你保存的编码应该不是 utf-8 的,你重新认真去保存一次看看,不然不会报错

关于文件储存的问题,我发现在程序中直接设置为编码utf-8
如图

2D604727D7AFBCAC9ACBDC465A4DFF7A.png

然后直接保存文件(这个方法就是我之前用的),python中 utf-8编码器无法解码

但如果另存一份拷贝,保存时选择utf-8编码,python中的 utf-8 编码器就可以正常解码了
如图
BB7AC2B6741C3E8BB377E73F03F1CC85.png

这两者是有什么差别吗?
ps:我的Mac OS系统,你大概是win,我不知道win下有没有类似的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-19 07:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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