有哪位大佬解释一下这个报错吗
操作没问题,为啥报错,是内容的问题吗??你可能得加个 encoding="utf-8" 默认的文件解码器是gbk,但是txt不是bgk编码的,可能是utf-8,具体看你文件的编码形式了。
换默认解码器:
f=open('text.txt', encoding='utf-8') 编码错误,打开的时候指定一下编码就行了
中文编码主要有以下四种:
1.GB2312
2.BIG5
3.GBK
4.UTF-8
一个一个试就行了。
光设置编码有什么用?
f=open('D://很痛苦.txt', encoding='utf-8').read()
需要使用read函数 青出于蓝 发表于 2021-9-20 19:40
光设置编码有什么用?
需要使用read函数
为啥呀{:5_104:} 你这个问题主要是编码的问题,上面的同学说得很清楚了!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) for each in file1:
print(f.readline())
需要一行一行读取,可以使用readline()方法{:10_297:} {:10_297:} {:10_297:} 开卷有益,多多益善····· 是编码的问题哦>>> fo = open("小米吗.txt")
>>> for l in fo:
print(l)
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 24: illegal multibyte sequence
>>> fo.close()
>>> fo = open("小米吗.txt",encoding = "utf-8")
>>> for l in fo:
print(l)
我的脑海里有个词叫做应力调整
文件操作分为两种,一个是读一个是写
先说读的操作。主要是通过f = open(路径文件,'?')来实现的,将一个文件读取到内存得到一个文件对象并进行后续的操作,本质是一个数据结构。然后关于这个后面的一般是r,并且默认都是读取的,要写的话就是写w,同时读写的话就是再加上一个+,如果是打开二进制文件的就是加上个b。并且默认是使用GBK编码的文件,如果里面含有中文的话还是需要使用这个utf-8的函数
几个方法:
read(),读取所有,光标从头到尾巴了,返回一个含有所有内容的字符串
readline(),读取一行数据,以\n为结束标志并且一起读进来。返回值为一个含有\n的字符串
readlines()也是读取完,但是是得到一个列表,每个元素相当一次readline一样。
还有一个seek的操作主要是确定这个光标的位置,0就是从头开始,2是文件末尾。只有在读取b模式的二进制文件是可以使用非0的那个偏移量。
接下来是写入
write,直接写,只有一个参数,返回值是写入的字符数目
>>>
页:
[1]