实例
import sys,time # w 模式只写,不能读 r 模式只读不写,a 模式可追加到最后,不会覆盖之前的内容,也不可读。 # r+ 模式读写。 w+ 模式写读(此模式不太用) ''' #data = open('yesterday',encoding='utf-8').read() #print(data) f = open('yesterday','a',encoding='utf-8')#f就是文件句柄 ##--------文件读取俩边 data = f.read() data2 = f.read() print(data2) # 上述方法不会读取俩遍,文件读完一遍就结束了,所以data2是i没有数据的。 ##文件写入。如下写入会直接覆盖之前的内容 #f.write('我爱北京天安门') ''' f = open('yesterday','r',encoding='utf-8') #for i in range(5): # print(f.readline()) #实现第十行不显示, 如下方法会把文件直接存到内存中。太low #f.readlines()会返回一个列表。.strip方法是去空格。 ''' for index.html, line in enumerate(f.readlines()) : if index.html ==9: print('-----------------我是分割线------------') continue print(line.strip()) #一行一行读取,并且内存只保存一行 此方法比较高,就应该这么写,是利用了迭代器。 count = 0 for line in f: if count ==9: print('------------------------我是分割线-------') count +=1 continue print(line) #打印当前位置 f.tell() 回到某个位置 f.seek() print('光标当前位置',f.tell()) print(f.readline()) print('当前位置',f.tell()) f.seek(0) print('现在光标又会回去了',f.tell()) ''' #进度条打印 for i in range(30): sys.stdout.write('#') #屏幕标准输出 sys.stdout.flush() #实时刷新 time.sleep(0.5) #截断方法,f.truncate() 只能从头开始截取。 f1 = open('yesterday','r',encoding='utf-8') f_new = open('yesterday.bak','w',encoding='utf-8') for line in f: if '当我年轻时' in line: line = line.replace('当我年轻时','当我年老时') f_new.write(line) f.close() f_new.close()