应用程序往往需要从磁盘文件中读取数据,或者把数据存储到磁盘中文件里,以持久的保存数据。文件可以看作是数据的集合,文件的输入与输出通过流来实现。流有5种基本的操作:打开、读取、写入、改变当前位置和关闭。
文本文件的操作一般包括三个步骤:打开文件、读取数据/写入数据和关闭文件。
文件的打开和创建是通过调用内置函数open()来实现的,语法格式:
f = open(file,mode='r',buffering=-1,encoding=None)
file是要打开或要创建的文件名
mode是打开文件的模式,常用的模式有:r,w,a等
buffering是表示是否使用缓存,默认-1表示使用系统默认的缓冲区大小
encoding是文件的编码格式
文件打开的模式:
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing
'a' open for writing, appending to the end of the file if it exists
'b' binary mode
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)
写入数据:
示例代码:
# 我们用写的模式,创建一个名为data1.txt的文件,并使用utf-8的编码格式操作文件 f = open('data1.txt','w',encoding='utf-8') # 把字符串Hello Python写入文件f中 f.write('hello Python ') # 依次把列表中的字符串写入到文件f中 f.writelines(['John ','Andrew ','Dave ','Tom ']) # 我们通过方法flush强制把缓冲的数据更新到文件中 f.flush()
注:方法write()/writelines()不会添加换行符,需要通过添加 来实现换行
关闭文件
写入完文件后,应该使用close()方法关闭,以释放资源,并把缓冲的数据更新到文件中
f.close() #关闭文件
我们操作完文件,需要关闭文件,但有时候会有遗忘的时候,因此我们推荐使用with语句和上下文管理协议,系统会自动关闭打开的文件
with语句格式:
with open(file,mode) as f:
#操作打开的文件
文件读取
文件读取的方法:
f.read():从f中读取剩余内容直至文件结尾,返回一个字符串
f.read(n):从f中读取至多n个字符,返回一个字符串;如果n为负数或None,读取直至文件结尾
f.readline():从f中读取1行内容,返回一个字符串
f.readlines():从f中读取剩余多行内容,返回一个列表。
另外,文件可以直接进行迭代,文本文件按行迭代,例如:
for s in f:
print(s)