APP下载

Python文件读写模式的用法研究

2021-03-24胡强欧阳红巍

科学与生活 2021年29期
关键词:二进制功能内容

胡强 欧阳红巍

摘要:Python文件读写模式是Python程序设计中一个重要的知识点,虽然难度系数不大,但是使用起来容易混淆,也容易出错。本文总结Python文件读写模式的各种类型,并通过实例加以研究。

关键词:Python;文件读写模式

Python文件操作模式主要分为文件读模式和文件写模式,其中文件读模式可以分为只读模式、读写模式、二进制只读模式、二进制读写模式;文件写模式可以分为只写模式、写读模式、二进制只写模式、二进制写读模式、追加只写模式、追加读写模式、二进制追加只写模式、二进制追加读写模式。

一、文件读模式

(1)r 只读模式

在这种模式下,只能读文件,不能写文件。以下代码试图打开d盘的example文件,如果该文件存在,则会正常读出文件的内容,如果文件不存在,则会报错,错误信息为“FileNotFoundError: [Errno 2] No such file or directory: 'd:\\example.txt'”,应尽量避免类似的错误。

(2)r+ 读写模式

在这种模式下,既可以读文件,也可以写文件。读写模式和只读模式功能相似,同样也要求文件存在,否则将会报错。两种模式之间最大区别在于:读写模式可以写文件,并将覆盖文件原内容,写入新内容;而只读模式没有写文件功能。以下代码将在文件开始位置写入“Python language is easy to understand.”。

运行上述代码前文件内容为“This is a program that mainly demonstrates the operation of files.”,运行后文件内容为“Python language is easy to understand.ates the operation of files.” 。不难发现读写模式只从头覆盖了相同字符个数的内容,原文件后面的内容并没有覆盖。

(3)rb 二进制只读模式 / rb+ 二进制读写模式

二进制只读模式和只读模式,二进制读写模式和读写模式的功能非常类似,不同处是二进制只读模式和二进制读写模式是按照二进制位进行读取。

二、文件写模式

(1)w 只写模式

在這种模式下,只能写文件,不能读文件。如果文件不存在,则会新建一个文件;如果文件存在,则会清空原文件内容,写入新内容。我们修改一下读写模式中的文件操作模式,将其修改为只写模式,其余不变。运行后文件内容为“Python language is easy to understand.”。需要注意的是这种模式因为没有读文件权限,如果强行读文件会报错,错误信息为“io.UnsupportedOperation: not readable”。

(2)w+ 写读模式

在这种模式下,既可以读,也可以写。它跟只写模式功能类似,但是在只写模式基础上增加了读文件功能。以下代码可以实现在example文件中写入 “Python language is easy to understand.”,其中“fd.seek(0)”语句是将文件指针移动到文件起始位置,这样“print(fd.read())”语句就可以输出整个文件的内容,否则只能输出从文件指针当前位置到文件尾的内容,而此时文件指针已经到了文件尾,将不会输出任何内容。

需要注意的是写读模式和前面讲到的读写模式的区别,两种模式虽然都可以实现读文和写文件功能。但是两者之间存在明显的不同,第一个不同是读写模式要求文件必须存在,否则文件将会报错,而写读模式并不要求文件存在,如果文件不存在,则会自动新建文件。第二个不同是写文件的方式不一样,读写模式是采用覆盖的模式,如果原文件内容比写入的内容多,则会保留部分原文件的内容,而写读模式是直接将原文件的所有内容清空,然后写入新内容,因此不可能存在原文件的任何内容。

(3)wb 二进制只写模式 / wb+ 二进制写读模式

二进制只写模式和只写模式,二进制写读模式和写读模式功能非常类似,主要的不同在于二进制只写模式和二进制写读模式是按照二进制位进行读取。

(4)a 追加只写模式

在这种模式下,可以写文件,不能读文件。如果文件存在,则在文件末尾写入内容,如果文件不存在,则会新建文件。追加写模式和只写模式的主要区别在于:如果文件存在,追加写模式是在文件末尾写入新内容,而只写模式是先清空原内容,然后写入新内容。需要注意的是追加只写模式和只写模式一样,没有读取文件权限,如果强行读取文件,程序将会报错。

(5)a+ 追加读写模式

该模式与追加只写模式功能类似,它在追加只写模式的基础上增加了读文件功能。

(6)ab 二进制追加只写模式 / ab+ 二进制追加读写模式

二进制追加只写模式和追加只写模式,二进制追加读写模式和追加读写模式功能非常类似,主要区别在于二进制追加只写模式和二进制追加读写模式是按照二进制位进行读取。

本文详细研究了Python文件读写模式的各种用法,并通过实例分析了在使用过程中可能出现的问题。

参考文献:

【1】胡强,MySQL数据库中ALTER TABLE语句的用法研究,电脑编程技巧与维护, 2019, 26(11):89-90.

【2】黄锐军.Python程序设计【M】.北京:高等教育出版社,2018.

作者简介:胡强(1984-),男,高级工程师,系统架构设计师,信息系统项目管理师,研究方向为人工智能、制造执行系统、计算机应用技术。

猜你喜欢

二进制功能内容
数学的翻译功能
有用的二进制
用Scratch把十进制转为二进制
有趣的进度
关注基向量的解题功能
我有特异功能
功能关系面面观