分享4个Python中的非常好用的自动化脚本
作者:川川菜鸟 发布时间:2023-12-03 09:59:17
标签:Python,自动化,脚本
这里有一些很棒的自动化脚本,你可以在你的 Python 项目中使用它们。在做项目的时候,我们需要一些现成的代码来帮助我们解决日常生活中的问题。本文为你的 Python 项目提供了4个自动化脚本,可以解决这些问题。
照片压缩器
这会将您的照片压缩成较小的尺寸,而j尽量的保证质量相同。
from PIL import Image
from tkinter.filedialog import *
fl=askopenfilenames() # 打开文件夹
img = Image.open(fl[0])
img.save("result.jpg", "JPEG", optimize = True, quality = 100)
图片水印
这个简单的脚本将为任何图像添加水印。你可以设置文本、位置和字体。
from PIL import Image
from PIL import ImageDraw, ImageFont
def watermark_img(img_path, res_path, text, pos):
font = ImageFont.truetype("简启体.TTF", 20)
img = Image.open(img_path)
wm = ImageDraw.Draw(img)
wm.text(pos, text, align='center', font=font, fill='red')
img.show()
img.save(res_path)
img = '4.png'
watermark_img(img, 'result2.jpg', '川川菜鸟', pos=(5, 5))
如下:
抄袭检查器
此脚本检查两个文件之间的抄袭。首先我创建一个word文件如下:
第二个文件如下,我只改变的数字:
脚本如下:
from difflib import SequenceMatcher
f1 = input("输入文件一的路径: ")
f2 = input("输入文件二的路径: ")
def plagiarism_checker(f1, f2):
with open(f1, errors="ignore") as file1, open(f2, errors="ignore") as file2:
f1_data = file1.read()
f2_data = file2.read()
res = SequenceMatcher(None, f1_data, f2_data).ratio()
print("两个文件相似度为:",res)
plagiarism_checker(f1, f2)
测试结果:
文件加解密
一个可以加密/解密任何文件的小脚本。先编写解密和加密函数。
from cryptography.fernet import Fernet
import re
# 加密
def encrypt(f_name, key):
fernet = Fernet(key)
with open(f_name, 'rb') as file:
original = file.read()
encrypted = fernet.encrypt(original)
with open(f_name, 'wb') as enc_file:
enc_file.write(encrypted)
# 解密
def decrypt(f_name, key):
fernet = Fernet(key)
with open(f_name, 'rb') as enc_file:
encrypted = enc_file.read()
decrypted = fernet.decrypt(encrypted)
with open(f_name, 'wb') as dec_file:
dec_file.write(decrypted)
执行加密函数:
# 加密部分 每次密码都是不同,所以保存起来,免得解密失败
key = Fernet.generate_key()
with open('加密的密码.txt', 'w') as f:
f.write(str(key))
f.close()
f_name = input("Enter Your filename: ")
encrypt(f_name, key) # 执行加密
首先我执行加密函数,对1.docx加密,我再去打开它是一片空白:
打开保存的密码如下:
b'b3LaZZPrLeQFtN8JYUfz3n_uWntQ0x0zH0i5-9hzBLU='
执行解密:
f_name2 =input("Enter Your filename: ")
key2=open('加密的密码.txt').read()
secret = re.findall(r'[\'](.*?)[\']',key2)[0] # 通过正则匹配出密码内容
decrypt(f_name2, secret ) # 执行解密
执行后就能再打开了。
来源:https://chuanchuan.blog.csdn.net/article/details/127694373


猜你喜欢
- 效果展示 准备工作1.canvas的使用主要用到了 bindtouchstart , bindtouchmove 两个属性,捕捉手
- 1. 前言由于近期有任务需要,要写一个能够处理Excel的脚本,实现的功能是,在A表格上其中一列,对字符串进行分组和排序,然后根据排序好的A
- 一、备份数据库1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server2、SQL Server组-->
- 尽管现代浏览器已经支持了众多的CSS3属性,但是大部分设计师和开发人员貌似依然在关注于一些很“主流”的属性,如border-radius、b
- 目录项目初始化选择 MQTT 客户端库Pip 安装 Paho MQTT 客户端Python MQTT 使用连接 MQTT 服务器导入 Pah
- 这篇文章主要介绍了python paramiko远程服务器终端操作过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- range()函数配合循环一块使用很方便,今天来整理一下这个函数的主要用法,以及几个小例子首先来看一下函数原型,非常简单: range(st
- 本文主要介绍vscode在工作中常用的快捷键及插件,目标在于提高工作效率本文的快捷键是基于mac的,windows下的快捷键放在括号里 Cm
- 目录前言一、函数传参request参数request传两个参数前言有的测试用例,需要依赖于某些特定的case才可以执行,比如登录获取到tok
- 问:怎样才能指定MySQL只监听某个特定地址?答:比较常见的办法是,在my.cnf之mysqld节,添加bind-address=127.0
- 如何利用微信JSSDK调用微信扫一扫功能?具体内容如下1. 确保有 调起微信扫一扫接口 权限,测试号可能不行;2. 导入相关JS<sc
- 1、官网下载,并解压https://dev.mysql.com/downloads/mysql/2、设置环境变量配置MYSQL_HOME为M
- 前言:线程安全问题:当2个线程同时用到线程池时,会同时创建2个线程池。如果多个线程,错开用到线程池,就只会创建一个线程池,会共用一个线程池。
- 在上一篇博客中,已经将环境搭建好了。现在,我们利用搭建的环境来运行一条测试脚本,脚本中启动一个计算器的应用,并实现加法的运算。创建模拟器在运
- 将pandas.DataFrame,pandas.Series的索引设置为datetime64 [ns]类型时,将其视为DatetimeIn
- 不知不觉大半年没更新了...前面小二介绍过使用Typora+MinIO+Java代码打造舒适写作环境,然后有很多大佬啊,说用Java来实现简
- 本文实例讲述了Python中的错误和异常处理操作。分享给大家供大家参考,具体如下:#coding=utf8print ''&
- 四则运算表达式求值思路说明使用双栈来实现——存放数值的栈 nums 与存放运算符
- 前言本文主要给大家介绍了关于Golang参数传递的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。关于参数传递,G
- 本文实例为大家分享了python3判断IP地址的具体代码,供大家参考,具体内容如下输入一串字符,判断该字符串是否为点分十进制的IP地址,若是