概述
seek() 方法用于移动文件读取指针到指定位置。
语法
seek() 方法语法如下:
fileObject.seek(offset[, whence])
参数
- offset – 开始的偏移量,也就是代表需要移动偏移的字节数
- whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。
返回值
该函数没有返回值。
实例
以下实例演示了 readline() 方法的使用:
文件 runoob.txt 的内容如下:
1:www.runoob.com
2:www.runoob.com
3:www.runoob.com
4:www.runoob.com
5:www.runoob.com
循环读取文件的内容:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开文件
fo = open("runoob.txt", "rw+")
print "文件名为: ", fo.name
line = fo.readline()
print "读取的数据为: %s" % (line)
# 重新设置文件读取指针到开头
fo.seek(0, 0)
line = fo.readline()
print "读取的数据为: %s" % (line)
# 关闭文件
fo.close()
以上实例输出结果为:
文件名为: runoob.txt
读取的数据为: 1:www.runoob.com
读取的数据为: 1:www.runoob.com
file.seek(0,2) #从文件末尾算,移动0个字节
file.seek(4,1) #1为从当前位置,移动4个字节
f.tell()方法告知游标的位置
file.tell()
- 作用:获取当前文件读取指针的位置
- 语法格式: file.tell() 注: 此方法没有参数
概述
flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
语法
flush() 方法语法如下:
fileObject.flush();
参数
无
返回值
该方法没有返回值。
实例
以下实例演示了 flush() 方法的使用:
实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 打开文件
fo = open("runoob.txt", "wb")
print("文件名为: ", fo.name)
# 刷新缓冲区
fo.flush()
# 关闭文件
fo.close()
以上实例输出结果为:
文件名为: runoob.txt
进度条实例:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys,time
for i in range(30): #进度条类型
sys.stdout.write("*")
sys.stdout.flush()
time.sleep(0.2)
参考:http://www.runoob.com/python/file-seek.html
http://www.runoob.com/python/file-flush.html