一、文件修改

现有文件file.txt,内容如下:
二十四节气歌
春雨惊春清谷天,
夏满芒夏暑相连。
秋处露秋寒霜降,
冬雪雪冬小大寒。
上半年逢六廿一,
下半年逢八廿三。
每月两节日期定,
最多相差一二天。
要求:将文件中‘一’替换成‘二’。

方法一
思路:
1、读取全部文件内容
2、将要修改的内容替换掉,并删除原先内容
3、将修改后的内容,写入文件中

with open('file','a+',encoding='utf-8') as f:
f.seek(0) #制定到文件开始的位置
all = f.read()
new_all = all.replace('一','二') #替换文件内容
f.seek(0)
f.truncate() #从当前位置开始删除文件内容
f.write(new_all)
f.flush()

方法二
思路:
1.读取一行修改一行。                           ×
2.利用临时文件保存修改后的内容,在修改结束后原来文件删除掉,临时文件修改文件名替换成原文件。

import os
with open('file',encoding='utf-8') as f,open('file.bk','w',encoding='utf-8') as f2:
for line in f:
new_line = line.replace('一','二') #替换文件内容
f2.write(new_line)
os.remove('file') #删除原来文件
os.rename('file.bk','file') #将临时文件改名

二、文件读写

比如将网站中的图片下载到本地保存起来。 图片、视频都要以二进制方式保存的,所以打开文件方式要采用rb、ab、wb,以二进制模式打开。

import requests
url = 'https://www.cnblogs.com/images/logo_small.gif'
img = requests.get(url).content f = open('hhh.jpg','wb')# bytes ,以二进制模式打开
f.write(img)

三、监控日志脚本

如果同一个ip地址60s之内访问超过200次,那么就把ip加入黑名单

需求分析:

1、60秒读一次文件

2、分割,取到第一个元素,ip地址

3、把所有的ip加入到一个list里,如果ip次数超过200次,加入黑名单

import time
point = 0 #文件指针
while True:
ips = []#存放所有的ip地址
blk_set = set() #存放需要加入黑名单ip
with open('access.log',encoding='utf-8') as f:
f.seek(point)
for line in f:
ip = line.split()[0]
ips.append(ip)
if ips.count(ip)>200:
blk_set.add(ip)
for ip in blk_set: #这里是因为防止ip重复加入黑名单,因为集合是去重的,所以里面没有重复的ip
print('加入黑名单%s'%ip)
point = f.tell()
time.sleep(30)
import requests
url = 'https://www.cnblogs.com/images/logo_small.gif'
img = requests.get(url).content

f = open('hhh.jpg','wb')# bytes ,以二进制模式打开
f.write(img)

python学习笔记(五)-文件操作2的更多相关文章

  1. python学习笔记:文件操作和集合

    一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...

  2. python学习笔记之文件操作(三)

    这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...

  3. python学习笔记4(文件操作)

    文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”)      直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...

  4. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  5. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  6. Python学习笔记 - day5 - 文件操作

    Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...

  7. python学习笔记(六)---文件操作与异常处理机制

    文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...

  8. 我的Python学习笔记之文件操作

    一,Python的文件类型有两种 1.文本文件 2.二进制文件 文件的操作: 1.打开文件,获取文件的控制权 2.读写文件 3.关闭文件,释放文件的控制权,如果不释放控制权,那么其他程序就不能访问此文 ...

  9. python学习笔记(四)-文件操作

    文件读写"""一.文件打开有3种方式 1.读 r #如果打开的文件的时候没有指定模式,那么默认是读 读写模式 r+,只要沾上r,文件不存在的时候,打开都会报错 2.写 w ...

随机推荐

  1. stm32高级定时器1互补输出 验证代码

    GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDe ...

  2. Linux搭建Radius服务器

    安装环境介绍 以下服务器信息为该文档安装Radius服务环境 服务器信息:CentOS7 内核版本:3.10.0-1062.el7.x86_64 安装软件版本 freeradius-utils-3.0 ...

  3. 自定义Vue&Element组件,实现用户选择和显示

    在我们很多前端业务开发中,往往为了方便,都需要自定义一些用户组件,一个是减少单一页面的代码,提高维护效率:二个也是方便重用.本篇随笔介绍在任务管理操作中,使用自定义Vue&Element组件, ...

  4. 转: SIFT原理解释

    1.SIFT概述 SIFT的全称是Scale Invariant Feature Transform,尺度不变特征变换,由加拿大教授David G.Lowe提出的.SIFT特征对旋转.尺度缩放.亮度变 ...

  5. SQLServer 判断文件是否存在

    根据20190621工作写的逻辑,以后可根据实际情况再做修改.顺便记录一下游标的使用,加强记忆. DECLARE @Id NVARCHAR(MAX) DECLARE @UserName NVARCHA ...

  6. EL表达式学习(二)

    1.从特定域中获取值: 2.从请求页面的input标签中,获取值:(同servlet中的getParameter和getParameterValues): 3.获取请求头(同servlet中的getH ...

  7. for循环操作(for...in、forEach)

    1.for...in语句用于对数组或者对象的属性进行循环操作,是for循环的一种. 注意:该方法可用于数组或对象. 语法:  for(变量 in 对象/数组){} 如: var obj = { nam ...

  8. 使用spring向service里面注入dao不成功。

    因为原来的程序没有使用spring.后来加spring的时候action有个地方的new没有改!!! new了个新的实现层 不是spring管理的对象.

  9. Django——实现最基础的评论功能(只有一级评论)

    我对评论功能的理解: --------(1)数据库建一个评论的表 --------(2)前端建一个提交评论的form表单 --------(3)表单提交评论内容后写入到数据库评论表中 -------- ...

  10. 稚晖君-最小linux服务器运行 nginx + netcore

    华为天才少年, B站科技大神,稚晖君(自称野生钢铁侠),多少科技爱好者拜服在他的全方位技术栈 今天我们就去入手一个他的量产产品 号称最小linux电脑 的"夸克" 到手之后,我们马 ...