|
发表于 2021-9-22 08:48:27
|
显示全部楼层
是编码的问题哦- >>> 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,直接写,只有一个参数,返回值是写入的字符数目
- >>>
复制代码 |
|