pythonliu97 发表于 2020-4-23 23:03:51

mp3文件按rt形式打开报错

在课后作业28中有将MP3直接按照rt的形式打印到屏幕上的题,但是没给出打印效果,自己尝试却报错了,代码如下:
f = open('1.mp3')
for i in f:
    print(i, end = ' ')
f.close()

Traceback (most recent call last):
File "F:\daima\filereadtxt\filereader.py", line 2, in <module>
    for i in f:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 21: illegal multibyte sequence

所示意思为GBK不能解码MP3,请问如何实现

小泉app 发表于 2020-4-24 00:52:20

我是只要看到'gbk'这种情况,就用encoding = 'utf-8'
这里可以改成
f = open('1.mp3',encoding = 'utf-8')
应该就可以了,具体为什么我也说不好。而且,那个文件名不是OpenMe.mp3吗?
另外可以参考一下https://fishc.com.cn/thread-161105-1-1.html (出处: 鱼C论坛)]避免打开文本文件出现编码错误的一个小技巧 https://fishc.com.cn/thread-161105-1-1.html (出处: 鱼C论坛)

_荟桐_ 发表于 2020-4-24 07:52:54

换rb
mp3是二进制

zltzlt 发表于 2020-4-24 08:12:18

请见:https://fishc.com.cn/thread-158932-1-1.html

所以代码应该这样改:

f = open('1.mp3', encoding='utf-8')
for i in f:
    print(i, end = ' ')
f.close()

pythonliu97 发表于 2020-4-26 03:29:09

zltzlt 发表于 2020-4-24 08:12
请见:https://fishc.com.cn/thread-158932-1-1.html

所以代码应该这样改:

仍然报错,其中MP3文件如何改为utf-8编码?
Traceback (most recent call last):
File "F:\daima\filereadtxt\filereader.py", line 2, in <module>
    for i in f:
File "D:\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
页: [1]
查看完整版本: mp3文件按rt形式打开报错