鱼C论坛

 找回密码
 立即注册
查看: 1811|回复: 4

[已解决]python 28讲的动动手怎么做啊

[复制链接]
发表于 2020-6-28 02:41:37 | 显示全部楼层 |阅读模式

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

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

x
python 28讲;
动动手0:
为什么下载完 OpenMe.mp3 后输入标准答案:
f1 = open('OpenMe.mp3')
f2 = open('OpenMe.txt', 'x')        # 使用”x”打开更安全
f2.write(f1.read())
f2.close()
f1.close()
会报错啊?

Traceback (most recent call last):
  File "/Users/apple/Desktop/python/python028.py", line 3, in <module>
    f2.write(f1.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 0xb3 in position 0: invalid start byte
最佳答案
2020-6-28 07:54:49



虽然 rb 可以打开,但是现实都是二进制的,会看不懂的,这个是编码问题,你试着在 open() 那添加一个参数 encoding = 'gbk' (比如 open('文件名',encoding='gbk'))然后试着再次运行代码看看.

如果还是报错,那这下面的内容就是你那个文件里的内容,你将它复制后,在你苹果电脑上新建个文本,然后另存为时候选择编码为 'UTF-8' 的那个,在尝试运行你的代码:
长期使用Windows操作系统的朋友很容易被扩展名所误导,认为扩展名决定文件类型,其实这种观念是错误的!

其实这就跟一个姓张的坏人,尽管把名字改为了“张好人”,但他还是一个坏人是一个道理的^_^

关于文件的扩展名,初学者容易走进的误区:

误区一:文件扩展名是一个文件的必要构成部分

一个文件可以有或没有扩展名,对于打开文件操作,没有扩展名的文件需要选择程序去打开它,有扩展名的文件会自动用设置好的程序(如有)去尝试打开(是“尝试打开”,而不是“打开”的原因参看下面的第2个误区),文件扩展名是一个常规文件的构成部分,但一个文件并不一定需要一个扩展名。

误区二:文件扩展名表明了该文件是何种类型

文件扩展名可以人为设定,扩展名为TXT的文件有可能是一张图片,同样,扩展名为M-P3的文件,依然可能是一个视频。



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

使用道具 举报

 楼主| 发表于 2020-6-28 02:42:31 | 显示全部楼层
我是python3.8
苹果的Mac
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 07:10:06 | 显示全部楼层
本帖最后由 liuzhengyuan 于 2020-6-28 07:11 编辑

使用 rb 打开 mp3 试试?
open("xxx.mp3", mode="rb")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 07:50:12 | 显示全部楼层
楼主你第一行代码应该加一个‘rb'
f1 = open('Young For You.mp3','rb')
f2 = open('record.txt','x')
f2.write(str(f1.read()))
f2.close()
f1.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-28 07:54:49 | 显示全部楼层    本楼为最佳答案   



虽然 rb 可以打开,但是现实都是二进制的,会看不懂的,这个是编码问题,你试着在 open() 那添加一个参数 encoding = 'gbk' (比如 open('文件名',encoding='gbk'))然后试着再次运行代码看看.

如果还是报错,那这下面的内容就是你那个文件里的内容,你将它复制后,在你苹果电脑上新建个文本,然后另存为时候选择编码为 'UTF-8' 的那个,在尝试运行你的代码:
长期使用Windows操作系统的朋友很容易被扩展名所误导,认为扩展名决定文件类型,其实这种观念是错误的!

其实这就跟一个姓张的坏人,尽管把名字改为了“张好人”,但他还是一个坏人是一个道理的^_^

关于文件的扩展名,初学者容易走进的误区:

误区一:文件扩展名是一个文件的必要构成部分

一个文件可以有或没有扩展名,对于打开文件操作,没有扩展名的文件需要选择程序去打开它,有扩展名的文件会自动用设置好的程序(如有)去尝试打开(是“尝试打开”,而不是“打开”的原因参看下面的第2个误区),文件扩展名是一个常规文件的构成部分,但一个文件并不一定需要一个扩展名。

误区二:文件扩展名表明了该文件是何种类型

文件扩展名可以人为设定,扩展名为TXT的文件有可能是一张图片,同样,扩展名为M-P3的文件,依然可能是一个视频。



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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 15:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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