在日常工作中我们会遇到一些系统配置、测试数据等读写以及保存的操作,在操作是我们就是可以使用Python对文件进行操作,使我们的工作更加便捷。在这篇文章中将和大家分享相关的内容。
文件操作流程
文件操作的步骤总结为如下:
(1)打开文件,得到文件的句柄并赋值给变量。
(2)通过得到的句柄对文件进行操作。
(3)操作完成后关闭文件。
文件操作的简单示例
#coding:utf-8
f = open('test.txt','r',encoding = 'utf-8')
data = f.read()
print(data)
f.close()
Python中打开文件我们使用的是open函数,首先介绍下open函数。
open()函数的完整语法格式:open(file,mode = 'r',buffering = -1,encoding = None,errors = None,newline = None,closefd = True)
参数说明如下:
file:必选参数,文件的路径,相对或者绝对路径均可。
mode:可选参数,文件打开模式,默认是“r”。
buffering:设置缓冲。
encoding:文件编码格式,一般使用utf-8
errors:报错级别
newline:区分换行符
closefd:传入的file参数类型。
mode参数的取值有多种,常用的有“r”,“w”,“a”
r:以只读的方式打开文件,光标只会放在文件的开头。
w:打开一个文件只用于写入,如果该文件已存在则打开文件并从开头开始编辑,原有的内容会被覆盖掉。如果该文件不存在,则创建一个新文件。
a:打开一个文件并用于追加文件内容,如果该文件已存在,光标会在文件的结尾。新的内容将会被写入已有内容之后,如果不存在,则创建新文件并进行内容写入。
文件常见操作方法
file.read([size]):从文件中读取指定的字节数,如果未给定或者为负则读取所有内容。
file.readline([size]):读取整行,包括“\n”字符。
file.readlines([sizeint]):读取所有行并返回列表,若给定sizeint>0,则是设置一次读取多少字节,这样可以减轻读取压力。
file.write(str):将字符串写入文件,返回的是写入的字符串长度。
file.wiritelines(sequence):向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
file.close():关闭文件。关闭文件后不能再进行文件操作。
通过read()读取文件的所有内容
#coding:utf-8
f = open('test.txt','r',encoding = 'utf-8')
data = f.read() #通过read读取文件全部内容
print("read 对应的结果:{}".format(data))
f.close()
通过readline()读取某行内容
#coding:utf-8
f = open('test.txt','r',encoding = 'utf-8')
data = f.readline() #通过readline读取文件某行内容
print("readline 对应的结果:{}".format(data))
f.close()
通过readlines()读取文件的所有内容,返回列表
#coding:utf-8
f = open('test.txt','r',encoding = 'utf-8')
data = f.readlines() #通过readlines读取文件全部内容
print("readlines 对应的结果:{}".format(data))
f.close()
返回结果:readlines 对应的结果:['12345\n', 'the second line\n', 'the third line\n', 'the forth line\n', 'the fifth line']
文件关闭
使用open()操作文件需要注意在文件操作完成后一定要使用close()关闭文件,否则就会一直占用系统资源还可能导致其他的安全隐患。为了避免忘记关闭文件,可以使用另外一种with open的方式,使用它我们就可以不用关注文件关闭了。
with open('test.txt','r',encoding = 'utf-8') as f:
data = f.read()
print("文件内容:\n {}".format(data))
执行结果:
文件内容:
12345
the second line
the third line
the forth line
the fifth line