open() 方法用于打开一个文件,并返回一个文件对象,在对文件进行处理过程都需要使用到这个函数。
注意:对文件的操作结束后,一定要记得调用文件对象的close()方法关闭文件。
open()方法的完整语法格式:
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
常用参数解释:
- file: 必需,文件路径(相对或者绝对路径)。
- mode:可选,文件打开模式,默认为 “r” (只读模式)。
- encoding:可选,一般为“utf-8”。
mode参数常用值有:
- “r”:以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
- “w”:以只写方式打开文件。如果该文件不存在,则会创建一个文件,如果该文件已存在,写入的内容会覆盖原有的内容。
- “a”:以只写方式打开文件。如果该文件不存在,则会创建一个文件,如果该文件已存在,写入的内容会追加在已有内容之后。
- “rb”:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。一般用于非文本文件,如图片文件等。
- “wb”:以二进制格式打开一个文件用于读写。如果该文件不存在,则会创建一个文件,如果该文件已存在,写入的内容会覆盖原有的内容。
- “ab”:以二进制格式打开一个文件用于读写。如果该文件不存在,则会创建一个文件,如果该文件已存在,写入的内容会追加在已有内容之后。
- “r+”:打开一个文件用于读写,文件的指针将会放在文件的开头。写入的内容会在当前文件指针之后。(最常用)
- “w+”:打开一个文件用于读写,如果该文件不存在,则会创建一个文件,如果该文件已存在,写入的内容会覆盖原有的内容。
- “a+”:打开一个文件用于读写,如果该文件不存在,则会创建一个文件,如果该文件已存在,写入的内容会追加在已有内容之后。
文件操作栗子:
# 读取当前目录下的file_test文件的内容并打印
file = open("file_test", "r")
content = file.read()
print(content)
file.close()
file对象常用方法:
- read([size]):从文件指针位置开始,读取指定的字符数,如果未给定或为负则读取所有。会移动文件指针。
- write(str):将字符串写入文件,返回的是写入的字符长度。具体从哪里开始写取决于open()方法的mode参数。
- close():关闭文件。关闭后文件不能再进行读写操作。
- seek(offset):向后移动文件指针指定的字节数。
- tell():返回当前文件指针的位置(字节数)
- readline():读取一行,包括换行。会移动文件指针。
- readlines():读取所有内容,放回一个列表,列表元素为每行的内容,包含换行。
- truncate([size]):截取文件内容,从开始位置截取指定的字符数保存,返回截取的字符数。默认为截取全部。
扩展:
1. 可用for循环遍历文件对象,遍历一次为一行数据,包括换行。
2.可用with语句打开文件,这种方法不用手动调用close()方法关闭文件对象,也可以同时打开多个文件,中间用逗号隔开。
3.修改文件,先新建一个备份文件,读取原文件,进行修改并写入备份文件,删除原文件,重命名备份文件。