Thomason 发表于 2018-10-25 19:07:42

Python打开文件老是报错

请问哪位大佬知道怎么用Mac打开Python028讲的动动手练习啊,谢谢!

fish_游鱼 发表于 2018-10-25 19:27:36

代码和报错信息?

Thomason 发表于 2018-10-25 19:33:49

fish_游鱼 发表于 2018-10-25 19:27
代码和报错信息?

f = open('OpenMe.mp3')
for each_line in f:
    print(each_line)
f.close()



Traceback (most recent call last):
File "/Users/Thomason/Desktop/Python/Homework 028(0).py", line 2, in <module>
    for each_line in f:
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/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

fish_游鱼 发表于 2018-10-25 20:53:23

f = open('OpenMe.mp3',encoding='gbk')
指定用GBK解码就可以了。文件是在Windows上写的,所以中文默认用的GBK编码。

fish_游鱼 发表于 2018-10-25 20:58:54

不指定编码的话,默认平台依赖,也就是Windows下默认GBK,Mac下默认utf-8。

Thomason 发表于 2018-10-25 22:52:56

fish_游鱼 发表于 2018-10-25 20:58
不指定编码的话,默认平台依赖,也就是Windows下默认GBK,Mac下默认utf-8。

那怎么办呢?

fish_游鱼 发表于 2018-10-26 13:00:14

Thomason 发表于 2018-10-25 22:52
那怎么办呢?

f = open('OpenMe.mp3', encoding='gbk')
打开的时候指定一下编码格式就行了呀。

Thomason 发表于 2018-10-26 15:52:56

fish_游鱼 发表于 2018-10-26 13:00
打开的时候指定一下编码格式就行了呀。

怎么指定格式?

fish_游鱼 发表于 2018-10-26 17:11:55

Thomason 发表于 2018-10-26 15:52
怎么指定格式?

代码不是贴出来了{:10_277:}

Thomason 发表于 2018-10-26 18:05:30

fish_游鱼 发表于 2018-10-26 17:11
代码不是贴出来了

感谢

Thomason 发表于 2018-10-26 18:07:08

fish_游鱼 发表于 2018-10-26 17:11
代码不是贴出来了

那我以后Mac都只能这么打开吗,有没有其他设置为默认的办法?

fish_游鱼 发表于 2018-10-26 19:22:21

Thomason 发表于 2018-10-26 18:07
那我以后Mac都只能这么打开吗,有没有其他设置为默认的办法?

主要取决于你要打开的文件的编码格式,其实显式的写出来比较好

Thomason 发表于 2018-10-26 19:57:33

fish_游鱼 发表于 2018-10-26 19:22
主要取决于你要打开的文件的编码格式,其实显式的写出来比较好

什么其实显式的写出来比较好

fish_游鱼 发表于 2018-10-26 21:37:52

Thomason 发表于 2018-10-26 19:57
什么其实显式的写出来比较好

指定encoding参数的值。

Thomason 发表于 2018-10-26 22:42:59

fish_游鱼 发表于 2018-10-26 21:37
指定encoding参数的值。

能不能直接锁死,好烦啊这样

fish_游鱼 发表于 2018-10-26 23:56:47

Thomason 发表于 2018-10-26 22:42
能不能直接锁死,好烦啊这样

你要打开什么编码类型的文件就指定哪种格式不是件很自然的事嘛{:10_284:}
页: [1]
查看完整版本: Python打开文件老是报错