lingedu 发表于 2020-6-12 22:07:06

python有关文件的疑问?

附件在压缩包里,读取文件时出现问题:
f = open('C:/Users/Administrator/Desktop/课后习题.txt')
f.read()

之后会报错,打不开文件:
报错代码:
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
    f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa1 in position 35: illegal multibyte sequence

请问是怎么回事?

老八秘制 发表于 2020-6-12 22:08:27

f = open('C:/Users/Administrator/Desktop/课后习题.txt', encode='utf-8')
f.read()

qiuyouzhi 发表于 2020-6-12 22:08:36

open加个参数:
encoding = "utf-8"

lingedu 发表于 2020-6-12 22:09:49

老八秘制 发表于 2020-6-12 22:08


能解释下那个参数是干啥用的吗?为啥要加这个参数啊

lingedu 发表于 2020-6-12 22:10:25

qiuyouzhi 发表于 2020-6-12 22:08
open加个参数:
encoding = "utf-8"

能解释下那个参数是干啥用的吗?为啥要加这个参数啊

Twilight6 发表于 2020-6-12 22:11:22

lingedu 发表于 2020-6-12 22:09
能解释下那个参数是干啥用的吗?为啥要加这个参数啊

改成这样就好了吧,mp3 格式的文件不支持遍历,你只能直接 read()

正常情况你打开mp3 文件会报错的,但是这个mp3 文件实质上是 txt文件所以不会报错
f = open('OpenMe.mp3')
print(f.read())

老八秘制 发表于 2020-6-12 22:12:24

lingedu 发表于 2020-6-12 22:09
能解释下那个参数是干啥用的吗?为啥要加这个参数啊

换解码,py的解码是utf-8

老八秘制 发表于 2020-6-12 22:16:19

Twilight6 发表于 2020-6-12 22:11
改成这样就好了吧,mp3 格式的文件不支持遍历,你只能直接 read()

正常情况你打开mp3 文件会报错的 ...

看串主题了吧{:10_256:}

lingedu 发表于 2020-6-12 22:17:23

Twilight6 发表于 2020-6-12 22:11
改成这样就好了吧,mp3 格式的文件不支持遍历,你只能直接 read()

正常情况你打开mp3 文件会报错的 ...

回错位置了,但是会报错啊?

1223253411 发表于 2020-6-12 22:18:52

本帖最后由 1223253411 于 2020-6-12 22:20 编辑

{:10_301:}

Twilight6 发表于 2020-6-12 22:23:21

老八秘制 发表于 2020-6-12 22:16
看串主题了吧

哈哈应该是

lingedu 发表于 2020-6-12 22:27:48

老八秘制 发表于 2020-6-12 22:16
看串主题了吧

对话私聊你了,求解答
页: [1]
查看完整版本: python有关文件的疑问?