Python 中的 4 个非常好用的自动化脚本
原创
©著作权归作者所有:来自51CTO博客作者wx62a0461bcb0eb的原创作品,请联系作者获取转载授权,否则将追究法律责任
这里有一些很棒的自动化脚本,你可以在你的 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 ) # 执行解密
执行后就能再打开了。