程序1
#!/usr/bin/python3
f = open("平凡的路.txt",encoding="utf-8")
data = f.read()
data2 = f.read()
print(data)
print("data2",data2)
程序1执行结果
程序1分析:
第二次data2读出来的结果为空,原因为:当第一个读操作完成时,文件光标处于文件末尾处;接着继续执行读取操作,系统从光标处向后读取,但光标已处于末尾,所以读出内容为空。
程序2
tell() 方法返回文件的当前位置,即文件指针当前位置。
tell() 方法语法如下:
fileObject.tell()
seek() 方法用于移动文件读取指针到指定位置。
seek() 方法语法如下:
fileObject.seek(offset[, whence])
flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
flush() 方法语法如下:
fileObject.flush();
文件 平凡的路.txt 的内容如下:
徘徊着的 在路上的
你要走吗 via via
易碎的 骄傲着
那也曾是我的模样
沸腾着的 不安着的
你要去哪 via via
谜一样的 沉默着的
故事你真的 在听吗
#!/usr/bin/python3
data = open("平凡的路.txt",encoding="utf-8")
print(data.tell())
print(data.readline())
print(data.tell())
data.seek(0)
print(data.tell())
print(data.readline())
print(data.tell())
#encoding打印字符集
print(data.encoding)
#flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
#一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
print(data.flush())
程序3 进度条
#!/usr/bin/python3
import sys,time
count=0
for i in range(10):
sys.stdout.write("# %s" %count)
count=count+1
sys.stdout.flush()
time.sleep(1)