1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # Author:James Tao 4 5 #取文件对象 6 f=open('yesterday','r',encoding='utf-8')#文件句柄 7 #关闭文件 8 f.close() 9 10 #操作文件 11 #读 12 f=open('yesterday','r',encoding='utf-8') 13 data=f.read() 14 data2=f.read() 15 f.close() 16 print(data) 17 print(data2) #data2不会被打印,因为data读完之后指针在文件最后,data2读不到内容 18 19 #写 20 f=open('yesterday2','w',encoding='utf-8')#注意!w是创建一个文件,之前文件被覆盖 21 f.write('啊啊啊啊 ') 22 f.write('噢噢噢噢') 23 f.close() 24 25 #追加 26 f=open('yesterday2','a',encoding='utf-8') 27 f.write('哎呀有') 28 f.close() 29 30 #只读前几行 31 f=open('yesterday','r',encoding='utf-8') 32 for i in range(5): 33 print(f.readline()) 34 f.close() 35 36 f=open('yesterday','r',encoding='utf-8') 37 for line in f.readlines():#f.readlines()函数返回一个列表,每一行一个元素 38 print(line.strip()) #strip函数去除字符串首位的空格和回车 39 f.close() 40 41 #不打印第几行 42 f=open('yesterday','r',encoding='utf-8') 43 for index,line in enumerate(f.readlines()):#f.readlines()函数返回一个列表,每一行一个元素 44 if index==9: 45 continue 46 print(line.strip()) 47 f.close() 48 #f.readline读一行就立即往内存里存一行,只适合读小文件 49 50 #占内存小更高效的方法 51 f=open('yesterday','r',encoding='utf-8') 52 count=0 53 for line in f: #f为一个迭代器 54 if count==9: 55 count+=1 56 continue 57 print(line) 58 count+=1 59 f.close() 60 61 f=open('yesterday','r',encoding='utf-8') 62 print(f.tell())#打印读文件的指针位置 63 print(f.read(5)) 64 print(f.readline()) 65 print(f.tell()) 66 67 f.seek(10)#将指针固定到某位置 68 print(f.readline()) 69 f.close() 70 71 f=open('yesterday','r',encoding='utf-8') 72 print(f.encoding)#打印文件所用的编码 73 print(f.fileno())#返回文件所在地址的编号 74 print(f.name())#打印文件名字 75 print(f.seekable())#判断读文件指针是否可移 76 print(f.readable())#判断文件是否可读 77 print(f.writable())#判断文件是否可写 78 79 80 f=open('yesterday','w',encoding='utf-8')#往文件里写的时候,内容先存在缓存,再写进硬盘;默认等到缓存满之后再一起写进硬盘 81 f.write('hello ') 82 f.flush()#强制刷新,不等缓存满直接缓存内容写进硬盘 83 f.close() 84 85 #进度条 86 import sys,time 87 for i in range(50): 88 sys.stdout.write('#') 89 sys.stdout.flush() 90 time.sleep(1) 91 92 93 f=open('yesterday','a',encoding='utf-8') 94 f.truncate(20)#从头开始截断文件,括号内设置大小 95 f.close() 96 97 #读写 98 f=open('yesterday','r+',encoding='utf-8')#以读和追加的模式打开 99 print(f.readline()) 100 print(f.readline()) 101 print(f.readline()) 102 f.write('-------------')#写在文件最后 103 print(f.readline()) 104 print(f.readline()) 105 print(f.readline()) 106 print(f.tell()) 107 f.close() 108 109 #写读 110 f=open('yesterday','w+',encoding='utf-8')#先创建文件之后再写读 111 print(f.readline()) 112 print(f.readline()) 113 print(f.readline()) 114 f.write('------------- ') 115 f.write('------------- ') 116 f.write('------------- ') 117 print(f.tell()) 118 f.seek(10) 119 print(f.readline()) 120 print(f.readline()) 121 print(f.readline()) 122 print(f.tell()) 123 f.close() 124 125 #以二进制格式读文件 126 f=open('yesterday','rb')#用处:网络传输只能用二进制格式、视频文件等二进制文件只能用二进制格式打开 127 print(f.readline()) 128 print(f.readline()) 129 print(f.readline()) 130 f.close() 131 132 #以二进制格式写文件 133 f=open('yesterday','wb') 134 f.write('hello '.encode())#必须用二进制格式写入 135 f.close()