本篇将会介绍python中的文件操作。
1. open函数介绍
- 使用open可以打开一个文件
- open的重要参数
通过open函数,可以得到一个文件对象。这个文件对象,代表着磁盘中的文件,通过文件对象中的各种方法,可以操作文件。
open函数原型:
open(
file,
mode='r',
buffering=-1,
encoding=None,
errors=None,
newline=None,
closefd=True,
opener=None,
)
除了file之外,都使用默认参数
1.1 open函数打开一个文件
f = open("test.txt")
以上,通过open打开一个已经存在的文件,并且返回文件对象(f)。
1.2 open函数的参数
- file:文件名
- mode:代表属性,默认值是"r",代表只读,如果需要写的权限,可以使用"w",如果以w方式打开,文件不存在,会创造文件
- encoding:编码方式,一般在互联网的文本格式中,推荐使用"utf-8"
2. 文件对象
上面实例中open函数返回的即为文件对象
3. 读取文件内容
调用文件对象的read
方法,可以尽可能地读取文件内容。read函数还有其他变形,例如按行读等,根据实际需要选择使用
In [5]: f = open("test.txt")
In [6]: content = f.read() #读取文件全部内容
In [7]: print(content)
today is sunny
4. 写入
通过调用write
方法,可以往文件中写入内容。
f2.write("I am back")
5. 关闭文件
因为文件有缓存的机制,所以有些效果并不是立即生效的,需要清空缓存,或者关闭文件才会生效。
f2.close()
6. 编码
推荐文件使用utf-8编码,打开和关闭文件时,指定utf-8编码
我们将test.txt
的内容改为中文:你好呀!666老铁!
此时再进行读取,效果如下:
In [10]: f = open("test.txt")
In [11]: f.read()
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
Cell In[11], line 1
----> 1 f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 8: illegal multibyte sequence
显示报错,'gbk' codec can't decode
这是因为在互联网时代,特别是网页上,默认的编码方式是utf-8
,但是python中的open函数的编码方式采用电脑默认的编码形式打开
。上述电脑中默认使用的是gbk
的编码方式打开,但是保存的是utf-8
格式,导致存文件和读文件是两种语言。
上述打开时的编码方式指定为utf-8
,这样读取到的就没有问题了
In [13]: f = open("test.txt",encoding = "utf-8")
In [14]: f.read()
Out[14]: '你好呀!666老铁!'
学习视频地址:Python中的文件操作