鱼C论坛

 找回密码
 立即注册
查看: 1202|回复: 12

[已解决]python 读取文件问题

[复制链接]
发表于 2020-6-26 16:13:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天刚学 python打开文件 遇到了一个问题 首先 python正常打开了 指定文件  但是 使用 f.read() 是 会报错
如下:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 8: illegal multibyte sequence

求解决
最佳答案
2020-6-27 07:25:12
小小小小xx 发表于 2020-6-26 22:25
但是
我的代码:
f = open('f:\\onpython.txt', 'w+', encoding='utf-8')
f = open('f:\\onpython.txt', 'w+', encoding='utf-8')
f.read()
f.write('哦 12315465123')
f.read()
f.seek(0, 0)
print(f.read())
f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-6-26 16:18:36 | 显示全部楼层
当时的代码
f = open('F:\\onpython.txt')
f.read()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-26 16:19:21 | 显示全部楼层
小小小小xx 发表于 2020-6-26 16:18
当时的代码
f = open('F:\\onpython.txt')
f.read()



编码问题,试试改成 utf-8 编码:
f = open('F:\\onpython.txt',encoding='utf-8')


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-26 16:21:13 | 显示全部楼层
这是因为,你存文件用的uft-8格式,而打开的时候用的GBK编码,编码不一致导致乱码了。

加这么一句就好了。
f = open('F:\\onpython.txt',encoding='utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-26 16:32:54 | 显示全部楼层
还是不行啊 代码:
f = open('f:\\onpython.txt', 'w', encoding='utf-8')
print(f)
f.read()
f.write('123')
f.close()

我注释 只保留前两行 可以正常运行 一到第三行就报错
这次是  io.UnsupportedOperation: not readable
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-26 16:48:06 | 显示全部楼层
小小小小xx 发表于 2020-6-26 16:32
还是不行啊 代码:
f = open('f:\\onpython.txt', 'w', encoding='utf-8')
print(f)

1,请回复别人,不然别人看不见。
2,得用'w+'模式啊,w是只写模式,不可以读
3,用'w'模式会清空文件内容,所以你的read没有用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-26 22:24:40 | 显示全部楼层
qiuyouzhi 发表于 2020-6-26 16:48
1,请回复别人,不然别人看不见。
2,得用'w+'模式啊,w是只写模式,不可以读
3,用'w'模式会清空文件 ...

okok  可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-26 22:25:43 | 显示全部楼层
qiuyouzhi 发表于 2020-6-26 16:48
1,请回复别人,不然别人看不见。
2,得用'w+'模式啊,w是只写模式,不可以读
3,用'w'模式会清空文件 ...

但是
我的代码:
f = open('f:\\onpython.txt', 'w+', encoding='utf-8')
f.read()
f.write('哦 12315465123')
f.read()
print(f.read())
f.close()

控制台 输出的是空白的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-26 23:39:44 | 显示全部楼层
小小小小xx 发表于 2020-6-26 22:25
但是
我的代码:
f = open('f:\\onpython.txt', 'w+', encoding='utf-8')

f.write后加一个f.seek(0)
因为此时文件的指针在文件末
读出来是空
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-27 07:25:12 | 显示全部楼层    本楼为最佳答案   
小小小小xx 发表于 2020-6-26 22:25
但是
我的代码:
f = open('f:\\onpython.txt', 'w+', encoding='utf-8')
f = open('f:\\onpython.txt', 'w+', encoding='utf-8')
f.read()
f.write('哦 12315465123')
f.read()
f.seek(0, 0)
print(f.read())
f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-27 09:37:05 | 显示全部楼层

我复制的代码
还是 空白啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-27 09:42:32 | 显示全部楼层
小小小小xx 发表于 2020-6-27 09:37
我复制的代码
还是 空白啊

不可能啊
我这都有内容了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-27 09:48:07 | 显示全部楼层
qiuyouzhi 发表于 2020-6-27 09:42
不可能啊
我这都有内容了

啊 我的错 我没运行这个文件 ....好像直接运行的控制台
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-20 07:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表