一、概述

上篇接介绍了文件的基本读写功能,这里将介绍文件指针及相关函数。

二、文件指针

文件指针是打开文件时就具有的属性,指向文件的位置,每次读文件或者写文件都会从指针位置开始,每次读写都会导致指针偏移相应的字节数。

默认情况下打开文件指针都是指向文件开头,只有当打开模式是追加方式(a a+ )时文件指针才指向文件结尾

三、相关函数和用法

查看文件指针的当前位置:def tell(self, offset, whence=None) ,offset表示偏移量,whence 表示指针位置,0-文件开头1-当前位置2-文件末尾 ,默认返回相对的文件开头的偏移量。

设置文件指针的位置:def seek(self, offset, whence=None)offset 表示偏移量,whence 表示指针的位置。

文本:

HelloWorld
HelloWordpress
HelloWorld2
HelloWordpress2

代码:

fp = open("a.txt", "r+")
print fp.read(11)  # HelloWorld
print fp.tell()  # 12
print fp.read(15)  # HelloWordpress
print fp.tell()  # 28
fp.seek(5, 1)  # 从当前位置向后偏移五个字节
print fp.read(7)  # word2
fp.seek(0, 0)  # 设置文件指针到文件开始
print fp.read()  # 打印所有文件内容

四、注意事项

读写文件时一定要注意文件指针的位置,如:

fp = open("a.txt", "r+")
fp = read()
fp = tell()  # 56
fp.write("HelloWorld") # 这时候会报错,因为文件指针指向了文件最后,写入失败

此时如果要写文件,先要把文件指针提前:

fp.seek(-1, 1)
fp.write("HelloWorld")  # 无错误

相同的,先写文件再读文件也会出出错,但是不会报错:

fp = open("test.txt", "w+")
w_data = "Hello"
fp.write(w_data)
print fp.tell()  # 5
# 错误,这里会输出乱码
#print r.read()  
# 正确
fp.seek()
print r.read()
最后修改:2017 年 09 月 28 日
喜欢就给我点赞吧