python入门28的作业 打开MP3
求大神帮帮忙!!!!!谢谢python入门28的作业 打开MP3我直接下载,复制了代码也不能直接打开文件
报错如下
Traceback (most recent call last):
File "C:/Users/18190/Desktop/python/28/读文件.py", line 2, in <module>
for each_line in f:
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'CP_UTF8' codec can't decode byte 0xb3 in position 0: No mapping for the Unicode character exists in the target code page.
>>> 本帖最后由 jackz007 于 2019-12-24 18:38 编辑
这个 mp3 文件实际上是一个含有中文字符的文本文件,打开文件的语句加上 encoding 选项试试,就像下面这样:
f = open(<mp3 file> , encoding='UTF-8') 文件中有中文,需要调整编码。
解决方法:
把打开文件的语句改成这样:
f = open('<filename>', encoding='utf-8') # 加上 encoding 参数 需要添加文件存放的路径名称,比如OpenMe.mp3存放在E盘中,那么对应程序应该是
f = open('E:\\OpenMe.mp3') jackz007 发表于 2019-12-24 18:36
这个 mp3 文件实际上是一个含有中文字符的文本文件,打开文件的语句加上 encoding 选项试试,就像下 ...
这就是一个大坑,哪有用mp3做扩展名的文本文件呢 杨林涛 发表于 2019-12-25 08:38
需要添加文件存放的路径名称,比如OpenMe.mp3存放在E盘中,那么对应程序应该是
f = open('E:\\OpenMe.mp3' ...
试过了 也不行哦 jackz007 发表于 2019-12-24 18:36
这个 mp3 文件实际上是一个含有中文字符的文本文件,打开文件的语句加上 encoding 选项试试,就像下 ...
f = open('OpenMe.mp3', encoding='UTF-8')
这样么?又报错了呢{:10_266:}
Traceback (most recent call last):
File "C:/Users/18190/Desktop/python/28/读文件.py", line 2, in <module>
for each_line in f:
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\lib\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 庸臃 发表于 2019-12-25 14:14
f = open('OpenMe.mp3', encoding='UTF-8')
这样么?又报错了呢
Traceback (most recent cal ...
再试试这个:
f = open('OpenMe.mp3', encoding='cp936') jackz007 发表于 2019-12-25 14:43
再试试这个:
f = open('OpenMe.mp3', encoding='cp936')
谢谢你 可以了 请问是什么原理呢? python 在读取文本文件的时候,需要对读到的每一个字节进行解码,如果打开文件的时候没有指定文件中的字符编码,python 就会按缺省参数进行解码,在 Windows 操作系统平台,缺省编码参数是 'GBK',在 Linux 操作系统下,缺省编码参数是 'UTF-8',显然,如果这个参数与文件实际采用的字符编码不一致,读取文件的时候,就会发生编码错误,这个时候,唯一有效的解决方案,就是在打开文件的时候,提供正确的 encoding 参数。 jackz007 发表于 2019-12-25 21:19
python 在读取文本文件的时候,需要对读到的每一个字节进行解码,如果打开文件的时候没有指定文件 ...
谢谢你{:5_109:} 赞,解决了我的问题
页:
[1]