在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 jonas f_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()