python大作战之文件读写进阶篇

来源:互联网 发布:ipad达芬奇调色软件 编辑:程序博客网 时间:2024/04/29 09:44

前言:之前跟大家说过,会对文件读写做一个进阶篇,那么今天就和大家一起学习下。

先给大家介绍几个方法:

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等的操作

原创粉丝点击