- 文件概述
读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。
读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)。
微实例:首先,用文本编辑器生成一个包含“中国是一个伟大的国家!”的txt格式文本文件,命名为 7.1.txt。分别用文本文件方式和二进制文件方式读入,并打印输出效果。
textFile =open("7.1.txt","rt",encoding='utf-8') print(textFile.readline()) textFile.close()
注:若没有 encoding='utf-8' 会报错 UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position...
运行结果:
2. 文件的打开关闭
Python对文本文件和二进制文件采用统一的操作步骤,即”打开—操作—关闭“。Python通过解释器内置的open()函数打开一个文件,并实现该文件与一个程序变量的关联。
打开模式 |
只可以读 |
只可以写 |
读写兼备 |
|||
文本模式 |
r |
w |
a |
r+ |
w+ |
a+ |
二进制模式 |
rb |
wb |
ab |
rb+ (r+b) |
wb+ (w+b) |
ab+ (a+b) |
3. 文件的读写
- 读取文件 :单纯的读取一个文件,我们首先要打开文件,然后读取里面的内容,使用read()方法,读取文件的全部内容,然后把读取出来的内容进行赋给一个变量
- with方式打开文件:
- open方法直接打开并读取文件,不使用with语句,此方法直接读取文件,但是要记得关闭文件,我们要知道,我们操作的是什么,目的是什么,如果我们只是单纯的读取文件的内容,而不去修改它,那么就单纯使用open()方法,不用第二参数即可。
二者异同点:
方法1,with 语句在不再需要访问文件后将其关闭。直接使用open()方法打开文件,但不需要自己调用close()关闭文件;
方法2,直接使用open()方法打开文件,要自己调用close()方法关闭文件。如果程序存在bug,导致close()语句未执行,文件将不会关闭。这看似微不足道,但未妥善地关闭文件可能会导致数据丢失或受损。如果在程序中过早地调用close(),我们会发现需要使用文件时它已关闭(无法访问),这会导致更多的错误。并非任何情况下都能轻松地确定关闭文件的恰当时机。
两种方法都可打开文件,方法1with打开的方式更安全一些,不需要我们去确定什么时候关闭文件。
两种方法在打开文件后,都可读取整个文件内容/逐行读取/把文件读取到一个列表中。
- 写入文件
保存数据的最简单的方式之一是将其写入到文件中。读取和写入文件有两种方法,一种是with语句打开文件;另一种是open()和close()结合使用打开和读取文件。
微实例:在文件中写入内容
with open("7.1.txt","w") as file: file.write("hello")
运行结果: