Python读取和写入文件-不能打开要写入的文件

Python读取和写入文件

文件处理都是任何一个编程语言的重要的特性。读取和写入文件也是Python内置的基本功能。通过这篇文章的学习,你能学到怎么读取文件,怎么关闭文件。

二进制文件和文本文件


在 Python 里,有两个不同的文件类型,二进制文件和文本文件。你遇到的文件大部分都是二进制文件。例如微软的word、ppt,pdf文件、图片、视频。他们都需要不同的软件才能打开。

打开文件


在 Python 里,最基本的文件处理函数是 open()。你不需要导入额外的模块。它是 Python 的一个内置函数。函数原型如下:

file_object = open(filename, mode)

filename 是你想要操作的文件名。

mode 是打开文件的模式。

  1. 'w' - 写入模式:它会创建一个新文件,如果文件存在,会删除文件里的内容,并将文件指针移到文件开头准备写入。
  2. 'r' - 读取模式:从文件里读取内容。
  3. 'a' - 追加模式:新增文件的内容,它不会删除文件里原有的内容,会将文件指针移到文件末尾。
  4. 'r+' - 读写模式:这个模式你可以修改文件,然后再读取内容,会将文件指针移到文件开头。
  5. 'a+' - 追加/读模式:它会把文件指针移到文件末尾,然后允许你读取文件的内容。
  6. 'x' - 排他模式:创建文件时,会判断文件是否存在。如果文件存在,则返回错误。

当你处理二进制文件是,需要将 b 追加在后面,例如 rb 、wb。

如果成功,返回 file_object 文件对象。你就可以调用 read() 或者 write() 方法读取或者写入内容了。

with语句


读取文件最好使用 with语句,这样你在处理完后,文件会自动关闭。

Python读取和写入文件

写入文件


写入文件,写入模式 mode 优先使用 a+模式,这样使文件指针指向末尾,直接向文件追加数据。除非你想清空数据,这个时候用 w 模式。

Python读取和写入文件

以上向文件写入三个数字,一共三行。注意写入前需要把整数用函数 str()转换成字符串,然后再写入。

读取文件


Python读取和写入文件

read(size) 方法还可以传递一个整数 size,要读取多少个字符,默认读取全部。

按行处理文件


最简单的按行处理文件的方法是使用循环。

Python读取和写入文件

输出:

Python读取和写入文件

这种方法效率很高,很节省内存。原因是一次只处理一行,不需要一次性的把整个文件读到内存里。

使用 readline() 方法只读取一行

Python读取和写入文件

输出:

'line 1\n'

行末带有换行符。

使用 readlines() 读取所有的内容


Python读取和写入文件

输出:

['line 1\n', 'line 2\n', 'line 3\n']

返回的是一个包含所有文件内容的列表,列表的每项末尾都包含有换行符。

推荐阅读