鱼C论坛

 找回密码
 立即注册
查看: 1680|回复: 9

[已解决]有哪位大佬解释一下这个报错吗

[复制链接]
发表于 2021-9-20 18:29:36 | 显示全部楼层 |阅读模式

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

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

x
操作没问题,为啥报错,是内容的问题吗??
最佳答案
2021-9-20 19:40:40
光设置编码有什么用?
  1. f=open('D://很痛苦.txt', encoding='utf-8').read()
复制代码

需要使用read函数
67633f2ecb90b9bd38b2ebbed8d07d0.png
1a508fe180e7cb2e4e967bc88d80263.png
b34d6efae011af6a999fef60a2f5726.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-20 18:46:36 From FishC Mobile | 显示全部楼层
你可能得加个 encoding="utf-8"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-20 18:47:11 | 显示全部楼层
默认的文件解码器是gbk,但是txt不是bgk编码的,可能是utf-8,具体看你文件的编码形式了。
换默认解码器:
f=open('text.txt', encoding='utf-8')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-20 19:01:37 | 显示全部楼层
编码错误,打开的时候指定一下编码就行了
中文编码主要有以下四种:
1.GB2312
2.BIG5
3.GBK
4.UTF-8
一个一个试就行了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-20 19:40:40 | 显示全部楼层    本楼为最佳答案   
光设置编码有什么用?
  1. f=open('D://很痛苦.txt', encoding='utf-8').read()
复制代码

需要使用read函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-9-20 21:33:38 | 显示全部楼层
青出于蓝 发表于 2021-9-20 19:40
光设置编码有什么用?

需要使用read函数

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

使用道具 举报

发表于 2021-9-20 23:01:53 | 显示全部楼层
你这个问题主要是编码的问题,上面的同学说得很清楚了!open里面要加encoding=‘utf-8’
file = open(r'E:\xiehaotao\dianshangjiansuo\ans1_test.txt',encoding='utf-8')

主要要指出的是,不知道你为什么要用循环打出来!一般的文件是(1)打开(2)读取,两步,即下面这样写。
file = open(r'E:\xiehaotao\dianshangjiansuo\ans1_test.txt',encoding='utf-8')
file = file.read()
print(file)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 09:03:45 | 显示全部楼层
  1. for each in file1:
  2.         print(f.readline())
复制代码


需要一行一行读取,可以使用readline()方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-21 10:07:25 | 显示全部楼层
开卷有益,多多益善·····
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-22 08:48:27 | 显示全部楼层
是编码的问题哦
  1. >>> fo = open("小米吗.txt")
  2. >>> for l in fo:
  3.     print(l)
  4.    
  5. Traceback (most recent call last):
  6.   File "<pyshell>", line 1, in <module>
  7. UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 24: illegal multibyte sequence
  8. >>> fo.close()
  9. >>> fo = open("小米吗.txt",encoding = "utf-8")
  10. >>> for l in fo:
  11.     print(l)
  12.    




  13. 我的脑海里有个词叫做应力调整



  14. 文件操作分为两种,一个是读一个是写

  15. 先说读的操作。主要是通过f = open(路径文件,'?')来实现的,将一个文件读取到内存得到一个文件对象并进行后续的操作,本质是一个数据结构。然后关于这个后面的一般是r,并且默认都是读取的,要写的话就是写w,同时读写的话就是再加上一个+,如果是打开二进制文件的就是加上个b。并且默认是使用GBK编码的文件,如果里面含有中文的话还是需要使用这个utf-8的函数

  16. 几个方法:

  17. read(),读取所有,光标从头到尾巴了,返回一个含有所有内容的字符串

  18. readline(),读取一行数据,以\n为结束标志并且一起读进来。返回值为一个含有\n的字符串

  19. readlines()也是读取完,但是是得到一个列表,每个元素相当一次readline一样。

  20. 还有一个seek的操作主要是确定这个光标的位置,0就是从头开始,2是文件末尾。只有在读取b模式的二进制文件是可以使用非0的那个偏移量。



  21. 接下来是写入

  22. write,直接写,只有一个参数,返回值是写入的字符数目
  23. >>>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 14:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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