在python中提供了 open() 方法用于打开或创建一个文件,如果文件不存在则创建,如果文件存在则打开。
def open(file,mode='rt',buffering=None,encoding=None,errors=None,newline=None,closefd=True): pass# 第一个参数 file 是指文件的路径,包括绝对路径和相对路径,在模块根目录下的文件可以直接写文件名(包括后缀)# 第二个参数 mode 指访问文件的模式,默认值 rt 代表只读,除此以外,还有:# r -- 只读模式(默认模式)# w -- 写入模式# a -- 追加模式,写入内容追加至文件末尾# x -- 创建一个新的文件并打开它写入内容# b -- 二进制模式# t -- 文本模式(默认模式)# + -- 更新模式# 一般情况下使用 t 文本模式,仅在处理二进制文件时需要使用 b 模式,更新模式一般都与其他三个基本模式 r w a 一起配合使用,r+,w+,a+都代表可读可写,具体差异见后面附表。# 第三个参数 buffering 是一个可选的整数,用于设置缓冲策略。# 第四个参数 encoding 用于设置编码或解码的编码名称,默认与操作系统的编码一致。# 第五个参数 errors 用于指定错误编码如果进行。# 第六个参数 newline 用于设置换行符。# 第七个参数 closefd 如果为False,则表示文件描述符保持打开。
# open()方法返回的是一个文件对象,通过该对象可以对文件进行操作,write()方法用于向文件中写入内容,read()方法用于读取文件,默认读取全部内容,close()方法用于关闭文件。f_test = open('test.txt','w')# 向文件中写入内容f_test.write('hello jonas')# 关闭文件f_test.close()# 打开并读取文件内容f_test2 = open('test.txt')f_data = f_test2.read()print(f_data) # hello jonasf_test2.close()# 追加内容f_test3 = open('test.txt','a')f_test3.write('\nhello tom')f_test3.close()# 注意:w 模式是相当于重写文件,写入内容会将以前保存的所有内容覆盖
除了以上几个基本方法以外,文件对象还有很多内置的方法:
# offset 表示偏移量,正值往后,负值往前;from表示方向,其中0代表文件开头,1代表指针当前位置,2代表文件末尾f.seek(offset,from)# 该方法用于获取文件指针的位置f.tell()# 该方法用于刷新文件f.flush()# 该方法将读取文件所有内容,文件中的每一行作为列表的一个元素,结果返回这个列表f.readlines()# 读取一行f.readline()