码迷,mamicode.com
首页 > 编程语言 > 详细

Python操作文件

时间:2018-11-25 21:17:24      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:技术分享   alt   log   point   读写   写入内容   bsp   基本   list   

文件的基本操作

r:只读(默认),不能写,在打开文件时,r可以省略不写,打开不存在的文件会报错

技术分享图片

w:只写模式,不可读:不存在的文件则会创建,存在的文件会清空文件内容

技术分享图片

a:追加模式,不可读:不存在的文件会创建,存在的文件会追加

技术分享图片

r+:可读,可写,可追加。打开不存在的文件会报错

技术分享图片

w+:读写模式,已经存在的文件,内容会被清空,可以读到已经写得内容

a+:追加读写模式,不存在则创建,存在则只追加内容

技术分享图片

文件的操作方法

readlines():读取文件所有内容,把每行的内容放到一个list里面

技术分享图片

readline():读取文件里面第一行的内容

技术分享图片

read():读取文件的所有内容

seek():文件指针

1、当前文件指针指到哪,seek(0):指到文件的最前面

2、read与readlines文件指针到文件的最后一行;readline文件指针到第二行

技术分享图片

write():写入内容

flush():写入文件后,刷新缓冲区,立即写到磁盘上.例如f.write()文件没有写入成功,那就就要用.flush方法,文件就会更新,即写入成功了

tell():获取当前文件的指针指向

truncate():清空文件内容

writelines():会循环list里面的每一个元素都写进文件里面去

练习题:#-*-coding:utf-8-*-

#需求:每分钟监控服务器日志,IP请求超过200次的,加入黑名单
#
#1、读文件,获取到每行的内容,open readlines
#2、找到IP,按照空格分隔字符串,取第一个元素,split
# 3、把IP存到字典里,每个IP出现一次,IP次数就+1
# 4、判断IP次数是否大于200,加入黑明单
import time
point=0
while True:
ips={}
f=open(‘access.log‘,encoding=‘utf-8‘)
f.seek(point)
for line in f.readlines():
#获取所有的IP和次数存在字典里
ip=line.split()[0]
#print(ip)
if ip not in ips:
ips[ip]=1
else:
ips[ip]+=1
point=f.tell()#记录读完之后的文件指针
for k,count in ips.items():
if count>200:
print(‘[%s]加入黑明单 ‘%ip)
#print(ips)
time.sleep(60)
高效读取文件

 

 

Python操作文件

标签:技术分享   alt   log   point   读写   写入内容   bsp   基本   list   

原文地址:https://www.cnblogs.com/qiaomeiling/p/9984517.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!