专栏名称: 隼与鱼
目录
相关文章推荐
51好读  ›  专栏  ›  隼与鱼

文件操作(一)

隼与鱼  · 简书  ·  · 2019-04-03 08:33

正文

请到「今天看啥」查看全文


通过程序操作文件与手动操作文件类似,通常需要经过三个步骤:打开文件、读或写数据、关闭文件。

打开文件

对文件所有的操作都是在打开文件之后进行的,打开文件使用open()函数来实现,其语法格式如下:

open(file[, mode = 'r' [,...]])

该函数返回一个文件对象,通过它可以对文件进行各种操作,另外参数列表中参数的说明如下表所示。

参数 说明
file 被打开的文件名
mode 文件打开模式,默认是只读模式

例如打开文件名为test.txt文件,具体示例如下:

f1 = open('test.txt')  # 打开当前目录下的test.txt文件
f2 = open('../test.txt')  # 打开上级目录下的test.txt文件
f3 = open('E:/study/随笔/test.txt') # 打开E:/study/随笔目录下的test.txt文件

示例中使用open()函数打开文件时使用只读模式打开,此时必须保证文件是存在的,否则会报文件不存在的错误。

Python中打开文件的模式有多种,具体如下表所示。

mode 追加 读/写格式 删除原内容 文件不存在 文件指针初始位置
'r' 文本 产生异常 文件开头
'r+' 文本 产生异常 文件开头
'rb+' 二进制 产生异常 文件开头
'w ' 文本 新建文件 文件开头
'w+' 文本 新建文件 文件开头
'wb+' 二进制 新建文件 文件开头
'a' 文本 新建文件 文件末尾
'a+' 文本 新建文件 文件末尾
'ab+' 二进制 新建文件 文件末尾

在上表中, r 表示从文件中读取数据, w 表示往文件中写入数据, a 表示往文件中追加数据, 可以与以上三种模式( r w a )配合使用,表示同时允许读和写。另外,当需要处理二进制文件时,则需要提供 b 给mode参数,例如 rb 用于读取二进制文件。

关闭文件

当对文件内容操作完以后,一定要关闭文件,这样才能保证所修改的数据保存到文件中,同时也可以释放内存资源供其他程序使用。关闭文件的语法格式如下:

文件对象名.close()

接下来演示文件的打开与关闭,如下所示。

1 f = open('test.txt', 'a+')  # 以追加模式读写test.txt
2 f.close()  # 关闭文件

运行结果如下图所示。


运行结果

在上例中,通过open()函数打开文件test.txt,此时返回一个文件对象并赋值给f,最后通过文件对象调用close()方法关闭文件。

此处需注意,即使使用了close()方法,也无法保证文件一定能够正常关闭。例如,在打开文件之后和关闭文件之前发生了错误导致程序崩溃,这时文件就无法正常关闭。因此,在管理文件对象时推荐使用with关键字,可以有效地避免这个问题,具体示例如下:

with open('test.txt', 'r+') as f:
 # 通过文件对象f进行读写操作

使用with-as语句后,就不需要再使用close()方法,另外with-as语句还可以打开多个文件,具体示例如下:

with open('test1.txt', 'r+') as f1, open('test2.txt', 'a+') as f2:
 # 通过文件对象f1、f2分别操作test1.txt、test2.txt文件

从上述示例中可看出,with-as语句极大的简化了文件打开与关闭,这对保持代码的优雅性是有极大帮助的。







请到「今天看啥」查看全文