
上QQ阅读APP看书,第一时间看更新
1.8 文件的读写操作
文件读写就是一种常见的I/O操作,所以在学习读写操作之前,我们先了解一下I/O操作。
1.I/O操作概述
I/O在计算机中是指Input/Output,也就是Stream(流)的输入和输出。这里的输入和输出是相对于内存来说的,Input Stream(输入流)是指数据从外(磁盘、网络)流进内存,Output Stream(输出流)则是指数据从内存流到外面(磁盘、网络)。程序运行时,数据都在内存中驻留,并由CPU这个超快的计算核心来执行,涉及数据交换的地方(通常是磁盘、网络操作)就需要I/O接口。
I/O接口是由操作系统提供的。操作系统屏蔽了底层硬件,向上提供通用接口。因此,操作I/O的能力也是由操作系统提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也是如此。
2.文件读写实现原理
通过上文的描述,我们知道了文件读写就是一种常见的I/O操作,那么可以推断Python也会封装操作系统的底层接口,以直接提供文件读写相关的操作方法。
我们要操作的对象是什么呢?我们又如何获取要操作的对象呢?
1)由于操作I/O的能力是由操作系统提供的,且现代操作系统不允许普通程序直接操作磁盘,所以读写文件时需要请求操作系统打开一个对象(通常被称为文件描述符,即file descriptor,简称fd),这就是我们要在程序中操作的文件对象。
2)通常高级编程语言中会提供一个内置的函数,通过接收“文件路径”以及“文件打开模式”等参数来打开一个文件对象,并返回该文件对象的文件描述符。因此,通过这个函数我们就可以获取要操作的文件对象了。这个内置函数在Python中叫open()。