文件操作总结(1)

  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('啊啊啊啊\n')
 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\n')
 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('-------------\n')
115 f.write('-------------\n')
116 f.write('-------------\n')
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\n'.encode())#必须用二进制格式写入
135 f.close()

 

转载于:https://www.cnblogs.com/BIT-taozhen/p/9763102.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值