python 文件操作seek() 和 telll() 自我解释
file.seek()方法格式: seek(offset,whence=0) 移动文件读取指针到制定位置
offset:开始的偏移量,也就是代表需要移动偏移的字节数。
whence: 给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头算起,1代表开始从当前位置开始算起,2代表从文件末尾开始算起。当有换行时,会被换行截断。 seek()无返回值,故值为None
tell() : 文科文件的当前位置,即tell是获取文件指针位置。
readline(n):读入若干行,n代表读入的最长字节数。
readlines() :读入所有行的内容
read读入所有行的内容
tell() : 返回文件读取指针的位置
现在有一个xl.txt文档,内容如下:
AAAAAAAABBBBBBBBCCCCCCCCDDDDDDDD
可以通过open()函数来打开文件,比如:
>>> f = open("C:/Users/jetway/Desktop/xl.txt", "r")
可以利用tell()函数查看在文件中的当前位置,以字节为单位,比如:
>>> f.tell()
0L
这里还没对文件做任何处理,所以在文件的起始处,位置为0L
接下来就是通过seek()函数,来指定在文件中的位置了。说明,seek()有两个参数,其中第二个参数只有0,1,2三种,假设第一个参数为X, 0表示从文件开始处移动到文件的X字节处。比如:
>>> f.seek(8,0)
>>> f.tell()
8L
>>> fs = f.read()
>>> fs
'BBBBBBBBCCCCCCCCDDDDDDDD'
1表示移动到相对于当前位置X字节的地方,比如现在是在第8个字节处:
>>> f.seek(9,1)
>>> f.tell()
17L
>>> fs = f.read()
>>> fs
'CCCCCCCDDDDDDDD'
2表示相对于文件末尾的位置,比如:
>>> f = open("C:/Users/jetway/Desktop/xl.txt", "r")
>>> f.seek(-12, 2)
>>> f.tell()
20L
>>> fs = f.read()
>>> fs
'CCCCDDDDDDDD'
通过seek()函数,我们可以方便的指定在文件中的读取位置,至于读取的字节数目么就要靠read()函数了,只需要加入需要读取的字节数参数就可以了,比如,我要从第8个字节开始读取13个字节:
>>> f = open("C:/Users/jetway/Desktop/xl.txt", "r")
>>> f.seek(8,0)
>>> fs = f.read(13)
>>> fs
'BBBBBBBBCCCCC'