前言:之前跟大家说过,会对文件读写做一个进阶篇,那么今天就和大家一起学习下。
先给大家介绍几个方法:
1:readline()------读取多行文件内容
2:readlines()------读取单行文件内容
3:strip()------去掉文件操作中的空格和换行
4:tell()------打印或者输出当前文件光标的位置,按照字符来计算
5:seek()------移动光标到指定字符位置
6:flush()------时时刷新
7:stdout/stdin------标准输出和标准输入
8:truncate()------截断
9:closed()------判断文件是否关闭,返回结果为false和true
下面,通过几个例子来加深对它们的了解:
A:>>> f=open('fjh.txt','r',encoding=('gbk'))
>>> for line in range(3):
f.readline()
'我想在跑车里\n'
'想要一辆法拉利\n'
'想要钱 Money Money\n'
从例子中可以看出,readline只是一行一行输出,那与之相对的readlines就是多行输出
B:>>> f=open('fjh.txt','r',encoding=('gbk'))
>>> f.readline()
'我想在跑车里\n'
>>> f.tell()
14
>>> f.seek(0)
0
>>> f.readline()
'我想在跑车里\n'
从例子中可以看出,tell是把当前光标的位置打印出来,14,因为一个中文占两个字符,同时,seek就是把光标移动到开头
tell和seek一般同时出入
C:import sys,time
for i in range(20):
sys.stdout.write('#')
sys.stdout.flush()
time.sleep(0.1)
大家可以实际操作下,在idle中需要新建文件,在里面写好之后在点击run去运行
从例子中看出stdout是以屏幕为标准输出,flush会时时刷新缓存,如果没有flush,那么结果将会直接全部一次性打印出来
因为它会等缓存区满了统一打印出来
D:>>> f=open('fjh.txt','r',encoding=('gbk'))
>>> f.close()
>>> f=open('fjh.txt','w',encoding=('gbk'))
>>> f.truncate()
0
>>> f.close()
今天就先跟大家讨论到这里,下次我在补充一些r+,w+,a+,rb,wb等的操作