用打开文本文件形式打开音乐文件报错
file3=open('c:\\久石让 - Summer(菊次郎的夏天) (PIANO VER.).mp3 ')for i in file3:
print(i,end='')
报错:Traceback (most recent call last):
File "<pyshell#90>", line 1, in <module>
for i in file3:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 21: illegal multibyte sequence
是要修改编码格式吗? 是的 qiuyouzhi 发表于 2020-5-16 15:11
是的
请指教,怎么修改呢。我加了个encoding='gbk',还是报错的 本帖最后由 Twilight6 于 2020-5-16 15:14 编辑
改成用
open('c:\\久石让 - Summer(菊次郎的夏天) (PIANO VER.).mp3 ',encoding='utf-8')
先试试上面的,二进制打开的话你文本内容读不懂了哈哈哈
或者二进制打开?
open('c:\\久石让 - Summer(菊次郎的夏天) (PIANO VER.).mp3','rb') 陈书书书 发表于 2020-5-16 15:13
请指教,怎么修改呢。我加了个encoding='gbk',还是报错的
本身就是GBK编码的才报错的 陈书书书 发表于 2020-5-16 15:13
请指教,怎么修改呢。我加了个encoding='gbk',还是报错的
默认就是gbk。。所以用gbk读取报错
得改成utf-8
encoding = "utf-8" Twilight6 发表于 2020-5-16 15:13
改成用
先试试上面的,二进制打开的话你文本内容读不懂了哈哈哈
utf-8也不可以,二进制的正常打开了 陈书书书 发表于 2020-5-16 15:16
utf-8也不可以,二进制的正常打开了
{:10_287:}帮助到你的话设置最佳吧 file4=open('c:\\久石让 - Summer(菊次郎的夏天) (PIANO VER.).mp3 ',encoding='utf-8')
for i in file4:
print(i,end='')
Traceback (most recent call last):
File "<pyshell#101>", line 1, in <module>
for i in file4:
File "D:\python\Python37\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 21: invalid start byte
陈书书书 发表于 2020-5-16 15:20
file4=open('c:\\久石让 - Summer(菊次郎的夏天) (PIANO VER.).mp3 ',encoding='utf-8')
for i in file4:
...
音乐文件包含着一些utf-8 无法解码的东东所以打不开 Twilight6 发表于 2020-5-16 15:17
帮助到你的话设置最佳吧
好的,可是还想问一下,utf-8为什么也不可以?如果不想用二进制的话该如何打开呢 陈书书书 发表于 2020-5-16 15:22
好的,可是还想问一下,utf-8为什么也不可以?如果不想用二进制的话该如何打开呢
GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)。GBK编码专门用来解决中文编码的,是双字节的。不论中英文百都是双字节的。
UTF-8 编码是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的度论坛则用UTF-8 节省空间。另外,如果是外国人访问你的GBK网页,需问要下载中文语言包支持。访问UTF-8编码的网页则不出现这问题。可以直接访问。
打个比方 音乐文件并不是由一个个汉字 英文 组成的,而这些编码就是用来对应汉字和英文的
陈书书书 发表于 2020-5-16 15:22
好的,可是还想问一下,utf-8为什么也不可以?如果不想用二进制的话该如何打开呢
我第一次听说有人拿文本编码解二进制流 对于python的open来说,文件只有两种,一个文本格式,一种非文本格式(也可以叫二进制文件,不过严格意义来说,所有的计算机文件都是二进制文件,文本文件其实也可以用二进制方式打开),对于文本格式的文件,有多种编码,这是打开是要注意的问题,一般后缀名.txt、.ini、.csv、.lst的文件,还有各种语言的源代码、网页文件l等等,都是文本格式;而非文本文件范围就广了,各种多媒体文件,各种图片、各种office文档、可执行文件,各种各种,太多了,open只能以b的模式打开,不过打开后可以进行的操作不多,除非你非常熟悉你打开文件类型的格式,对于大部分人来说,利用第三方的包来操作对应的文件是最佳选择,比如office文件用python-docx,openpyxl,图片用Python PIL等等。
你的mp3是音频文件,你想播放还是编辑,可以找相关的第三方包,这个我不熟,就不推荐合适的包了。 永恒的蓝色梦想 发表于 2020-5-16 15:50
我第一次听说有人拿文本编码解二进制流
这是个小甲鱼课后题的例子,课后题就是没用二进制流却通过了,我敲的一样却没有通过。疑惑的是这个原理性问题 陈书书书 发表于 2020-5-16 20:56
这是个小甲鱼课后题的例子,课后题就是没用二进制流却通过了,我敲的一样却没有通过。疑惑的是这个原理性 ...
我觉得是运气问题 txxcat 发表于 2020-5-16 16:32
对于python的open来说,文件只有两种,一个文本格式,一种非文本格式(也可以叫二进制文件,不过严格意 ...
不是播放也不是编辑,就是跟着课后题练习把这个文件输出一下。不过还是非常感谢您的回答~ 永恒的蓝色梦想 发表于 2020-5-16 20:56
我觉得是运气问题
哈哈,好的好的
页:
[1]