Python 在读取和写入一个文件的时候,需要创建一个文件对象(file object),然后才能进行读取写入。
文件对象 为什么需要文件对象之所以要创建文件对象才能读写,是因为 Python 创建了一个中间层,这样用户就不用考虑底层的 io,通过中间层就可以实现读写。
创建一个文件对象使用open()会返回一个文件对象,最长使用的方式是配合两个参数:open(filename,mode)。
举个例子,假设有一个名为hello.txt,对其创建一个文件对象f:
f=open('hello.txt','r')
这里的'hello.txt'就是文件名称,后面的'r'表示在阅读模式下读取。
各字符含义如下:
| 字符 | 含义 |
|---|---|
| 'r' | 在阅读模式下,打开文件进行读取(也是默认模式) |
| 'w' | 打开文件进行写入(如果文件已经存在,那么从开头删减) |
| 'a' | 打开文件进行写入,如果文件已经存在,那么将内容附加到文件末尾 |
| 'x' | 打开文件进行唯一的创建,如果文件已经存在,那么将会失败 |
| 'b' | 二进制模式 |
| 't' | 文本模式(默认) |
| '+' | 打开文件进行更新(也就是同时开启读取和写入) |
默认模式是'r',其实等价于'rt'。
也就是说默认的是文本模式,这点非常重要,因为读取的时候会在行尾添加n,如果是编写二进制文件,如果添加了n的后果可想而知。
open()还有其他参数,具体请查看官方文档 https://docs.python.org/3.8/library/functions.html#open
关闭文件对象在使用完文件对象之后,需要关闭来释放使用的资源。关闭文件使用f.close()即可。
不过,如果不用with调用f.write()或者调用f.close(),那么即使程序成功退出,那么还是可能会导致f.write()的参数(也就是要写出的内容)不能完整地写入硬盘。



