文件处理都是任何一个编程语言的重要的特性。读取和写入文件也是Python内置的基本功能。通过这篇文章的学习,你能学到怎么读取文件,怎么关闭文件。
二进制文件和文本文件
在 Python 里,有两个不同的文件类型,二进制文件和文本文件。你遇到的文件大部分都是二进制文件。例如微软的word、ppt,pdf文件、图片、视频。他们都需要不同的软件才能打开。
打开文件
在 Python 里,最基本的文件处理函数是 open()。你不需要导入额外的模块。它是 Python 的一个内置函数。函数原型如下:
file_object = open(filename, mode)
filename 是你想要操作的文件名。
mode 是打开文件的模式。
- 'w' - 写入模式:它会创建一个新文件,如果文件存在,会删除文件里的内容,并将文件指针移到文件开头准备写入。
- 'r' - 读取模式:从文件里读取内容。
- 'a' - 追加模式:新增文件的内容,它不会删除文件里原有的内容,会将文件指针移到文件末尾。
- 'r+' - 读写模式:这个模式你可以修改文件,然后再读取内容,会将文件指针移到文件开头。
- 'a+' - 追加/读模式:它会把文件指针移到文件末尾,然后允许你读取文件的内容。
- 'x' - 排他模式:创建文件时,会判断文件是否存在。如果文件存在,则返回错误。
当你处理二进制文件是,需要将 b 追加在后面,例如 rb 、wb。
如果成功,返回 file_object 文件对象。你就可以调用 read() 或者 write() 方法读取或者写入内容了。
with语句
读取文件最好使用 with语句,这样你在处理完后,文件会自动关闭。
写入文件
写入文件,写入模式 mode 优先使用 a+模式,这样使文件指针指向末尾,直接向文件追加数据。除非你想清空数据,这个时候用 w 模式。
以上向文件写入三个数字,一共三行。注意写入前需要把整数用函数 str()转换成字符串,然后再写入。
读取文件
read(size) 方法还可以传递一个整数 size,要读取多少个字符,默认读取全部。
按行处理文件
最简单的按行处理文件的方法是使用循环。
输出:
这种方法效率很高,很节省内存。原因是一次只处理一行,不需要一次性的把整个文件读到内存里。
使用 readline() 方法只读取一行
输出:
'line 1\n'
行末带有换行符。
使用 readlines() 读取所有的内容
输出:
['line 1\n', 'line 2\n', 'line 3\n']
返回的是一个包含所有文件内容的列表,列表的每项末尾都包含有换行符。