一、概述
Python的文件对象是由C语言的stdio包实现,并且可以用内置的open()函数创建。
文件对象会由一些其它内置的函数和方法返回,如os.popen()和os.fdopen()以及套接字对象的makefile()方法。临时文件可以通过tempfile模块创建,高级的文件操作如复制、移动和删除文件和目录可以通过shutil模块完成。
当文件操作由于I/O原因失败时,将引发IOError异常。它包括出于某种原因该操作未定义的情况,比如在tty设备上seek()或写入只为读取打开的文件。
文件具有以下方法:
二、API
1、file.close()
关闭文件。
关闭的文件无法再读取或写入。关闭文件后,对该文件进行任何操作将引发ValueError异常,多次调用close()是允许的。
到Python 2.5,如果你使用with语句,你可以避免显式调用此方法。例如,当with代码块退出时,下面的代码将自动关闭f:
from __future__ import with_statement # This isn't required in Python 2.6
with open("hello.txt") as f:
for line in f:
print line,
2、file.flush()
刷新缓冲区。
类似stdio的fflush()。在某些类文件对象上,这个操作可能不存在。
3、file.isatty()
如果文件连接到一个(类)tty的设备,返回True,否则返回False。
4、file.next()
返回下一个输入行。
5、file.read([size])
最多从文件读取size字节。如果size参数为负或被省略,读取所有数据,直到达到了EOF。
注 此函数是对底层C函数fread() )的简单封装,并且在某些极端情况下和C函数有相同的行为,例如对于EOF是否被缓存。
6、file.readline([size])
从文件中读取一整行,
换行符包含在字符串中 。
如果size参数存在且非负数,返回的字符串可能不是完整的一行。
7、file.seek(offset[, whence])
设置光标的位置,
类似于stdio的 fseek()。没有返回值。
8、file.tell()
返回光标的位置,类似于stdiodeftell()。
9、file.write(str)
向文件中写入字符串。无返回值。
因为要进行缓冲,该字符串可能不会在文件中显示,直到flush()或close ()方法被调用之后才会在文件中显示写入的字符串。