7.1.6 文件的读写位置

7.1.6 文件的读写位置

从前面的程序运行结果中可以发现,每一次文件的打开与关闭之间进行的读写操作都是连续的,程序总是从上次读写的位置继续向下进行读写操作。实际上,每个文件对象都有一个称为“文件读写位置”的属性,该属性用于记录文件当前读写的位置。

Python中提供了一些获取文件读写位置、修改文件读写位置的方法,以实现文件的随机读写,如表7-4所示。

表7-4 文件读写位置方法

tell()方法返回当前读写的位置信息。在文件读取时会发现一个英文字符占一个位置,一个中文字符占3个位置。若文件hello.txt中的存储内容为“Hello,Python”,执行下列代码:

运行结果:

若poem.txt文件中存储了中文信息,执行下列代码:

运行结果:

一般来说文件的读写是顺序的,但有时需要从指定位置开始读写,则可使用seek(offset)方法进行定位。

以写入文件后并读取刚写的文件为例:写完文件后,指针定位在文件末尾,如果读取内容,则会读出空。只能使用seek()方法重新定位指针位置,才能读取内容。seek(0)定位到文件开头。

运行结果: