[ python ] 小脚本及demo-持续更新
1. 备份文件并进行 md5 验证
需求分析:
根据需求,这是一个流程化处理的事件。 检验拷贝文件是否存在,不存在则执行拷贝,拷贝完成再进行 md5 值的比对,这是典型的面向过程编程;
代码如下:
需要备份的文件和程序在同一目录下:
哪里有彩虹告诉我
能不能把我的愿望还给我
为什么天这么安静
所有的云都跑到我这里
有没有口罩一个给我
释怀说了太多就成真不了
也许时间是一种解药
也是我现在正服下的毒药
看不见你的笑 我怎么睡得着
你的声音这么近我却抱不到
没有地球太阳还是会绕
没有理由我也能自己走
你要离开 我知道很简单
你说依赖 是我们的阻碍
就算放开 但能不能别没收我的爱
当作我最后才明白
有没有口罩一个给我
释怀说了太多就成真不了
也许时间是一种解药
也是我现在正服下的毒药
看不见你的笑 我怎么睡得着
你的声音这么近我却抱不到
没有地球太阳还是会绕
没有理由我也能自己走
你要离开 我知道很简单
你说依赖 是我们的阻碍
就算放开 但能不能别没收我的爱
当作我最后才明白
看不见你的笑 要我怎么睡得着
你的身影这么近我却抱不到
没有地球太阳开始会绕会绕
没有理由我也能自己走掉
释怀说了太多就成真不了
也许时间是一种解药解药
也是我现在正服下的毒药
你要离开 我知道很简单
你说依赖 是我们的阻碍
就算放开 但能不能别没收我的爱
当作我最后才明白
rainbow.txt
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author: hkey
import hashlib, os def copy_file(s_file, d_file):
'''
文件拷贝
:param s_file: 拷贝源文件
:param d_file: 拷贝后的目标文件
'''
with open(s_file, 'rb') as f1, open(d_file, 'ab') as f2:
while True:
# 读取大文件的时,不能一次全部读取到内存中,每次读取1024个字节
data = f1.read(1024)
if not data:
break
f2.write(data) def get_file_md5(f):
'''
传入文件句柄,返回文件内容的md5值
:param f: 文件打开的句柄
:return: 文件内容的md5值
'''
md5 = hashlib.md5()
while True:
# 读取大文件的时,不能一次全部读取到内存中,每次读取1024个字节
data = f.read(1024)
if not data:
break
md5.update(data)
return md5.hexdigest() if __name__ == '__main__':
# 判断是否存在备份文件
if 'rainbow_bak.txt' not in os.listdir('.'):
copy_file('rainbow.txt', 'rainbow_bak.txt')
with open('rainbow.txt', 'rb') as f1, open('rainbow_bak.txt', 'rb') as f2:
file1_md5 = get_file_md5(f1)
file2_md5 = get_file_md5(f2)
# print(file1_md5)
# print(file2_md5)
# 当源文件和目标文件md5值不匹配,则备份异常;
if file1_md5 != file2_md5:
print('\033[31;1m文件备份异常!\033[0m')
else:
print('\033[32;1m文件备份完成.\033[0m')
else:
print('\033[33;1m文件备份已存在.\033[0m')
文件备份并校验md5值
[ python ] 小脚本及demo-持续更新的更多相关文章
- 分享几个python小脚本
by 梁凯 今天我想给大家分享几个python脚本,分别是: 1.公司访问外网认证脚本(最初有同事写过,我优化了一下). 2.统计周报系统所有同事的最近一篇周报. 3.统计测试技术分享里指定一个月所有 ...
- python 小脚本升级-- 钉钉群聊天机器人
一则小脚本(工作中用) 在这篇文章中写的监控的脚本,发送监控的时候 是利用的邮箱,其实在实际,邮箱查收有着不方便性,于是乎升级, 我们工作中,经常用钉钉,那么如果要是能用到钉钉多好,这样我们的监控成功 ...
- 分享一个刷网页PV的python小脚本
下面分享一个小脚本,用来刷网页PV. [root@huanqiu ~]# cat www.py #!/usr/bin/python# coding: UTF-8import webbrowser as ...
- C#、Java中的一些小功能点总结(持续更新......)
前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ...
- 好用的函数,assert,random.sample,seaborn tsplot, tensorflow.python.platform flags 等,持续更新
python 中好用的函数,random.sample等,持续更新 random.sample random.sample的函数原型为:random.sample(sequence, k),从指定序列 ...
- python小脚本(18-11.10)-修改excle后批量生成,作用:导入数据时,系统做了不能导入重复数据时的限制时使用 -本来是小白,大神勿扰
from testcase.test_mokuai.operation_excle import OperationExcleimport shutil class test_daoru(): #一个 ...
- 第一个python小脚本
第一个python小实验 前言 作为一个工作1年的linux运维搬砖师来说,发现没点开发能力真的是不好混啊.于是下定决心学习python! 直接上刚写的语句(大神莫鄙视) 通过控制台输入一个账号密码, ...
- 短小实用 渗透用的Python小脚本
渗透的很多时候,找到的工具并不适用,自己码代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的,短小实用. 一.记录root密码小工具 root.py #!/usr/bin/py ...
- 网站渗透常用到的Python小脚本
0×00渗透的很多时候,找到的工具并不适用,自己码代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的,短小使用,求欣赏,求好评. 0×01记录root密码小工具 root.py ...
随机推荐
- [洛谷P4717]【模板】快速沃尔什变换
题目大意:给定多项式$A$和$B$,求$C$满足: $$C_n=\sum\limits_{x\oplus y=n}A_xB_y$$ 其中$\oplus$为位运算($or,and,xor$) 题解:$ ...
- 洛谷 P2272 [ZJOI2007]最大半连通子图 解题报告
P2272 [ZJOI2007]最大半连通子图 题目描述 一个有向图\(G=(V,E)\)称为半连通的\((Semi-Connected)\),如果满足:\(\forall u,v \in V\),满 ...
- Java 匿名内部类 只能访问final变量的原因
文章来源:http://blog.sina.com.cn/s/blog_4b6f8d150100qni2.html 1)从程序设计语言的理论上:局部内部类(即:定义在方法中的内部类),由于本身就是在方 ...
- 使用openssl实现RSA非对称加密
生成公钥私钥 使用命令生成私钥 openssl genrsa - 参数:genrsa 生成密钥 -out 输出到文件 rsa_private_key.pem 文件名 1024 长度 从私钥中提 ...
- ubuntu16.04命令行模式黑屏解决办法
ubuntu16.04命令行模式黑屏解决办法 问题描述 在ubuntu上装Nvidia的显卡驱动,需要关闭图形界面才能安装驱动,但是,出现如下情况: 使用“ctrl+alt+F1”命令进入命令行界面是 ...
- MANIFEST.MF的文件的作用
在web项目中一个war包下面有一个文件叫:MANIFEST.MF 这个文件的作用是:告诉我们的信息有: Manifest-Version: 1.0Built-By: 张三(由谁创建)Build-Jd ...
- apt-get update的hit和ign含义
How do Ign and Hit affect apt-get update? From what I can see in the apt source code, "Ign" ...
- 有向图的强联通分量 Tarjan算法模板
//白书 321页 #include<iostream> #include<cstdio> #include<cstring> #include<vector ...
- Bigbluebutton中文乱码问题
Bigbluebutton中文乱码问题 Libreoffice安装中文 桌面版:在新立得软件包管理器中搜索下面两个文件,之后安装: libreoffice-l10n-zh-cn 和 libreoffi ...
- Base class does not contain a constructor that takes '0' argument
刚刚在写一段直播室网站中的一段程序遇,突然遇到一个错误,如下 'TVLLKBLL.BaseClass' does not contain a constructor that takes 0 argu ...