9.1 文件对象

文件对象不仅可以用来访问普通的磁盘文件,也可以访问任何其他类型抽象层面上的“文件”。一旦设置了合适的“钩子”,你就可以访问具有文件类型接口的其他对象,就好像访问的是普通文件一样。

随着使用Python经验的增长,会遇到很多处理“类文件”对象的情况。有很多这样的例子,例如实时地“打开一个URL”来读取Web页面,在另一个独立的进程中执行一个命令进行通信,就好像是两个同时打开的文件,一个用于读取,另一个用于写入。

内建函数open()返回一个文件对象(参见下一小节),对该文件进行后续相关的操作都要用到它。还有大量的函数也会返回文件对象或是类文件(file-like)对象。进行这种抽象处理的主要原因是许多的输入/输出数据结构更趋向于使用通用的接口。这样就可以在程序行为和实现上保持一致性。甚至像Unix这样的操作系统把文件作为通信的底层架构接口。请记住,文件只是连续的字节序列。数据的传输经常会用到字节流,无论字节流是由单个字节还是大块数据组成。