应用程序往往需要从磁盘文件中读取数据,或者把数据存储到磁盘中文件里,以持久的保存数据。文件可以看作是数据的集合,文件的输入与输出通过流来实现。流有 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\n')
- # 依次把列表中的字符串写入到文件f中
- f.writelines(['John\n','Andrew\n','Dave\n','Tom\n'])
- # 我们通过方法flush强制把缓冲的数据更新到文件中
- f.flush()
注:方法 write()/writelines() 不会添加换行符,需要通过添加 \ n 来实现换行
关闭文件
写入完文件后,应该使用 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)
来源: http://www.bubuko.com/infodetail-1954448.html