文件——其它文件工具

未匹配的标注

额外的,更专用的文件方法显示在表9-2中,甚至有更多的方法不在那个表中。比如,之前提到过:seek 重置了文件中的当前位置(下一次读或写将在那个位置发生),flush 强制把缓冲的输出写出到磁盘而无需关闭连接(默认,文件总是被缓冲的)等等。

Python 标准库手册和在前言中描述的参考书提供了文件方法的完整列表;要快速了解,请交互式地运行dirhelp调用,传入一个打开的文件对象(in Python 2.X but not 3.X, you
can pass in the name file instead)。要获得更多的文件处理例子,请参阅第13章中的侧边栏为什么你要关心:文件扫描器。它概述了统计的文件扫描循环代码模式,其中包含了这里还没有充分介绍的语句。

还请注意:虽然 open 函数和它返回的文件对象是Python脚本中到外部文件的主要接口,但在Python工具集中仍有额外的类文件工具。在这些工具之中有:

  • 标准流

    sys 模块中的预打开的文件对象,比如 sys.stdout(参见第11章打印操作获取更多细节)

  • os 模块中的描述符文件

    支持更底层工具如文件锁定的整数文件句柄(还请参见 Python 3.3的 open中的 "x" 模式来了解“独占文件创建”)

  • Sockets,管道,和FIFOs

    用来同步进程或在网络上通信的类文件对象

  • 被称作“shelves” 的按键访问文件

    直接按键用来存储未修改和 pickled 的 Python对象(在第28章中被使用)

  • Shell命令流

    os.popensubprocess.Popen 等工具,支持创建 shell 命令 并向它们的标准流进行读写(参见第13章第21章的例子)

第三方开源领域提供了更多的类文件工具,包括与PySerial 扩展的串口进行通信和对 pexpect系统中的交互式程序的支持。要获取关于类文件工具的更多信息,请参见应用类的Python书籍和整个网络。


注意

Version skew note: In Python 2.X, the built-in name open is essentially a synonym for the name file, and you may technically open files by calling either open or file (though open is generally preferred for opening). In Python 3.X, the name file is no longer available, because of its redundancy with open. 在Python 3.X中,名称 file不再有用,因为有了 open 它就是多余的。

Python 2.X users may also use the name file as the file object type, in order to customize files with object-oriented programming (described later in this book). 在Python 3.X中,文件已经极大地改变了。用来实现文件对象的类在标准库模块io中。请参见这个模块的文档或代码来了解它用来自定义的类,并在一个打开的文件F上运行type(F)调用来获取提示。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~