文件的最基本读写方式
1 f=open('小重山','r',encoding='utf8') 2 date=f.read(5) # 3 print(date) 4 f.close() 5 6 import time 7 f=open('小重山2','a',encoding='utf8') 8 9 date=f.write('\n hello cindy.\n') 10 date=f.write('im so young') 11 12 time.sleep(2) 13 f.close()
#注意 如果用这种方式打开的文件 一定要使用close()方法关闭文本 虽然python一般情况下会自动关闭文档
Read的一些方法
1 f1=open('小重山','r',encoding='utf8') 2 for i in f1: 3 print(i.strip()) #迭代器 最优的打印方式 打印一次(很可能是一行)释放一次 然后再取下一次 4 5 f2=open('小重山','r',encoding='utf8') 6 print(f2.tell()) 7 print(f2.read(5)) 8 print(f2.tell()) #tell 告诉当前光标所在的位置 当然 如果内容是中文的话 那么一个中文就占3个字符 与编码有关 9 10 f2.seek(0) #自定义光标的位置 11 print(f2.read(4))
Wirte的一些方法
import sys,time for i in range(50):sys.stdout.write("#") #sys.stdout 这是一个终端操作 在终端上显示sys.stdout.flush() #flush实时写入硬盘time.sleep(0.01)f3=open('小重山3','a',encoding='utf8') f3.write("im good very good \n千里江陵一日还\n两岸猿声啼不住\n轻舟已过万重山\n") f3.truncate(15) #数据截断 比如ftp重传 可以截断你需要截断的位置 f3.close()
r+ w+ a+
1 #r+,w+,a+ 2 f3=open('小重山3','r+',encoding='utf8') #r+模式 可读可写 从第一个字符开始读 写是在最后写 3 print(f3.readline()) 4 f3.write('cindy') 5 f3.close() 6 7 8 f4=open('小重山4','w+',encoding='utf8') #w+先刷新(清空文件) 后再写 9 print(f4.readline()) 10 f4.write("cindy") 11 print(f4.tell()) 12 f4.seek(0) 13 print(f4.readline()) 14 f4.close() 15 16 17 f5=open('小重山5','a+',encoding='utf8') #a+从最后一个字符开始读 可读可写 18 print(f5.tell()) 19 print(f5.readline()) 20 f5.write("hello") 21 print(f5.tell()) 22 print(f5.readline()) 23 f5.close() 24 25 26 终极问题 27 f=open('小重山','r+',encoding='utf8') 28 num=0 29 for i in f: 30 num +=1 31 if num ==6: 32 f.write('cindy') #write操作说明 写从来都是从最后开始写的 跟读所在的指针位置无关 这是一种存储机制 33 34 35 f=open('小重山','r',encoding='utf8') 36 temp=open('temp','w',encoding='utf8') 37 num=0 38 for i in f: 39 num+=1 40 if num ==6: 41 i=''.join([i.strip(),'cindy\n']) 42 temp.write(i) 43 44 f.close() 45 temp.close()
with同时管理多个对象
1 with open('log','r') as a,open('log2','w') as f: 2 for i in a: 3 f.write(i)