超实用的十个超级实用事半功倍的Python自动化脚本

news/2024/4/20 3:28:20/

在日常的工作学习当中,我们总会遇到各式各样的问题,其中不少的问题都是一遍又一遍简单重复的操作,不妨直接用python脚本来自动化处理,今天就给大家分享十个python高级脚本,帮助我们减少无谓的时间浪费,提高工作学习中的效率。

给照片添加水印

给照片添加水印的代码多种多样,下面这种的或许是最为简单的形式:

from PIL import Image
from PIL import ImageFont
from PIL import ImageDrawdef watermark_Image(img_path,output_path, text, pos):
img = Image.open(img_path)
drawing = ImageDraw.Draw(img)
black = (10, 5, 12)
drawing.text(pos, text, fill=black)
img.show()
img.save(output_path)img = '2.png'
watermark_Image(img, 'watermarked_2.jpg','Python爱好者集中营', pos=(10, 10))

检测文本文件的相似性

很多时候我们需要来检查两文件的相似性,到底存在着多少的雷同,或许以下的这个脚本文件可以派得上用场:

from difflib import SequenceMatcherdef file_similarity_checker(f1, f2):
with open(f1, errors="ignore") as file1, open(f2, errors="ignore") as file2:
f1_data = file1.read()
f2_data = file2.read()
checking = SequenceMatcher(None, f1_data, f2_data).ratio()
print(f"These files are {checking*100} % similar")file_1 = "路径1"
file_2 = "路径2"
file_similarity_checker(file_1, file_2)

对文件内容进行加密

有时候我们手中文件的内容十分的重要、十分地机密,我们可以选择对此进行加密,代码如下:

from cryptography.fernet import Fernetdef encrypt(filename, key):
fernet = Fernet(key)
with open(filename, 'rb') as file:
original = file.read()
encrypted = fernet.encrypt(original)
with open(filename, 'wb') as enc_file:
enc_file.write(encrypted)key = Fernet.generate_key()
filename = "file.txt"
encrypt(filename, key)

我们生成密钥,然后对文件内容进行加密,当然这个密钥后面在对文件进行解密的时候会派上用场,因此密钥一定要保存完好,解密的代码如下:

def decrypt(filename, key):
fernet = Fernet(key)
with open(filename, 'rb') as enc_file:
encrypted = enc_file.read()
decrypted = fernet.decrypt(encrypted)
with open(filename, 'wb') as dec_file:
dec_file.write(decrypted)decrypt(filename, key)

全选代码

复制

上面的脚本,其中的密钥是一个随机生成的随机数,当然密钥也可以是我们自己指定的,代码如下:将照片转换为PDF

有时候我们需要将照片转换成PDF格式,或者将照片依次添加到PDF文件当中去,代码如下:

import os
import img2pdfwith open("Output.pdf", "wb") as file:
file.write(img2pdf.convert([i for i in os.listdir('文件路径') if i.endswith(".jpg")]))

修改照片的长与宽

我们要是想要修改照片的长度和宽度的话,下面的这个代码可以帮得上忙,代码如下:

from PIL import Image
import os
def img_resize(file, h, w):
img = Image.open(file)
Resize = img.resize((h,w), Image.ANTIALIAS)
Resize.save('resized.jpg', 'JPEG', quality=90)img_resize("文件路径", 400, 200)

对于照片的其他操作

除了上面修改照片的长度与宽度之外,针对照片我们还有其他的操作,例如模糊化照片的内容:

img = Image.open('1.jpg')
blur = img.filter(ImageFilter.BLUR)
blur.save('output.jpg')

照片翻转90度:

img = Image.open('1.jpg')
rotate = img.rotate(90)
rotate.save('output.jpg')

照片进行锐化的处理:

img = Image.open('1.jpg')
sharp = img.filter(ImageFilter.SHARPEN)
sharp.save('output.jpg')

照片左右对称翻转,代码如下:

img = Image.open('1.jpg')
transpose = img.transpose(Image.FLIP_LEFT_RIGHT)
transpose.save('output.jpg')

照片进行灰度处理:

img = Image.open('1.jpg')
convert = img.convert('L')
convert.save('output.jpg')

测试网速

当然我们在开始测网速之前需要提前下载好依赖的模块

pip install speedtest-cli

然后我们开始尝试测试一下网速:

from speedtest import Speedtestdef Testing_Speed(net):
download = net.download()
upload = net.upload()
print(f'下载速度: {download/(1024*1024)} Mbps')
print(f'上传速度: {upload/(1024*1024)} Mbps')
print("开始网速的测试 ...")net = Speedtest()
Testing_Speed(net)

货币汇率的转换

例如我们想要看一下美元与英镑之间的汇率转换,100美元可以换成多少的英镑,代码如下:

# 导入模块
from currency_converter import CurrencyConverter
from datetime import date
# 案例一
conv = CurrencyConverter()
c = conv.convert(100, 'USD', 'GBP')
print(round(c, 2)) # 保留两位小数

或者我们想要看一下美元与欧元之间的汇率转换,100美元可以换成多少的欧元:

# 案例二
c = conv.convert(100, 'USD', 'EUR', date=date(2022, 3, 30))
print(round(c, 2)) # 44.1

生成二维码

其中包括了二维码的生成以及二维码的解析,代码如下:

import qrcode
from PIL import Image
from pyzbar.pyzbar import decodedef Generate_qrcode(data):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,)
qr.add_data(data)
qr.make(fit=True)
image = qr.make_image(fill_color="black", back_color="white")
image.save("qrcode.png")Generate_qrcode("Python爱好者集中营 欣一")

我们再来看一下二维码的解析,代码如下:

def Decode_Qrcode(file_name):
result = decode(Image.open(file_name))
print("Data:", result[0][0].decode())Decode_Qrcode("文件名")

制作一个简单的网页应用

调用的是Python当中的flask模块来制作网页应用,代码如下:

from flask import Flask
app = Flask(__name__)@app.route("/")
def home():
return "Hello World!"@app.route("/python")
def test():
return "欢迎来到Python爱好者集中营,欣一"if __name__ == "__main__":
app.run(debug=True)


http://www.ppmy.cn/news/88105.html

相关文章

【运维知识进阶篇】集群架构-HTTPS证书详解

HTTPS证书在企业中非常重要,因为HTTP不安全,采用HTTP协议容易受到劫持和篡改,如果是采用HTTPS,数据在传输过程中加密,可以避免报文信息被窃取篡改,避免网站传输时信息泄露。实现https,要了解SSL…

VSCode启动vue项目,入门各类报错解决方案

1、npm install,报错 2、启动项目命令:npm run dev,直接报错npm ERR! missing script: dev,解决方案: 1>.使用命令:vue init webpack project(项目名)。 若使用命令:vue init webpack proje…

Ansible介绍

文章目录 Ansible介绍Ansible的架构为什么要有Ansible TowerAnsible Tower Ansible介绍 Ansible是一种自动化工具,可以用于自动化部署、配置和管理IT基础设施。它是一种基于Python的开源软件,提供了一个简单易用的语言和工具集,使得自动化管…

【C++】锁

目录 一、简介二、互斥锁三、条件锁 和 (unique_lock && lock_guard)四、递归锁五、读写锁六、自旋锁 一、简介 线程之间的锁有:互斥锁、条件锁、递归锁、读写锁、自旋锁。   其中自旋锁比较特殊,它是一种busy-waiting锁…

基于欧式距离的聚类算法的Kmeans作业

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 基于欧式距离的聚类算法,其认为两个目标的距离越近,相似度越大。 该实验产生的点为二维空间中的点。 环境配置 java环境,使用原生的Java UI组件JPanel和JFrame 算法原理 基于欧式距离的聚…

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问)包含:栈

《汇编语言》- 读书笔记 - 第3章-寄存器(内存访问) 3.1 内存中字的存储问题 3.1 3.2 DS 和 [address]问题 3.2 3.3 字的传送问题 3.3问题 3.4 3.4 mov、add、sub 指令3.5 数据段问题 3.53.1~3.5 小结检测点 3.1 3.6 栈3.7 CPU 提供的栈机制问题 3.6 3.8 …

格式化输入

C语言中常用的输入可以有多种方式,如scanf(),getchar(),gets()。它们的功能都类似(获取键盘输入的数据),但scanf()因功能使用、函数简单,而深受编程者喜爱。 scanf()函数功能: 执行格式化输入(用户可以按照…

阿里巴巴今年计划招聘15000人

据媒体报道,阿里巴巴集团宣布将在2023年招聘15000名新员工,其中包括3000名校招人才。 这一消息的发布,也为最近关于淘宝天猫、阿里云、菜鸟、本地生活等业务裁员的谣言敲响了谣言的警钟。 阿里巴巴官微表示,“近日,关于…

安装 Jenkins 2.346.3 LTS

环境: apache-tomcat-8.5.88 Jenkins 2.346.3 LTS Running Jenkins system Jenkins requires Java 11 or 17 since Jenkins 2.357 and LTS 2.361.1. Read more about this in the announcement blog post. https://www.jenkins.io/doc/administration/requirement…

【CSAPP】虚拟内存 | 地址空间 | 页表内存保护 | 页错误引发异常逐出 (evicted)

💭 写在前面:本文将学习《深入理解计算机系统》虚拟内存部分,CSAPP 是计算机科学经典教材《Computer Systems: A Programmers Perspective》的缩写,该教材由Randal E. Bryant和David R. OHallaron 合著。 📜 本章目录…

【毕业季征文】你们的未来可期

还有大约一个月即将又有一批大学的学弟学妹们离开学校,走向社会,走上工作岗位。你们是否是既兴奋又迷茫呢?,我相信更多的是憧憬吧。回想我大学毕业那是10年前的事情了,现在的感受是那么遥远,仿佛自己从来都没上过大学。可能是在大学期间过的太过艰苦,以至于不想保留那一…

【自然语言处理】【ChatGPT系列】大模型的涌现能力

大语言模型的涌现能力 《Emergent Abilities of Large Language Models》 论文地址:https://arxiv.org/pdf/2206.07682.pdf 相关博客 【自然语言处理】【ChatGPT系列】WebGPT:基于人类反馈的浏览器辅助问答 【自然语言处理】【ChatGPT系列】ChatGPT的智能…

深度学习实战二:多元线性回归(基于Pytorch,含数据和详细注释)

系列文章目录 深度学习实战一:线性回归(基于Pytorch,含数据和详细注释) 文章目录 系列文章目录前言多元线性回归实例说明1. pytorch中unsqueeze函数的理解2. pytorch中torch.cat函数的理解3. pytorch中x.mm(W_target) + b_target.item()理解4. pytorch中F.smooth_l1_loss(…

Stack 栈的实现与应用

目录 1. 概念 2. 常用的栈的方法 2.1 方法 2.2 代码 3. 自己实现栈 3.1 构造MyStack 3.2 push() 3.3 ensureCapacity() 3.4 pop() 3.5 peek() 3.6 empty() 3.7 szie() 4. 栈的应用 1. 概念 栈(Stack)是一种数据结构&…

SQL案例-高校信息管理系统实现要求

SQL案例-高校信息管理系统实现要求 (1) 建表 stuInfo(学生信息表) 字段名称数据类型说明stuName字符学生姓名,该列必填,要考虑姓氏可能是两个字的,如欧阳俊雄stuNo字符学号,该列必填,学号不能重复,且必须…

【ES】---ES的基本操作

目录 一、前言二、Jest client和Rest client使用2.1、Rest client方式三、Rest client方式3.1、基本操作一、前言 ES有4种客户端,分别是:Jest client、Rest client、Transport client、Node client。 ES支持两种协议 HTTP协议,支持的客户端有Jest client和Rest client Nati…

3步轻松获取Pandas DataFrame任意单元格值

在Pandas处理DataFrame数据的过程中,我们时常需要获取某个具体的单元格值进行操作。那么如何高效而灵活地从Pandas DataFrame中提取任意一个单元格的值呢? 今天分享在Pandas DataFrame获取单元格值的3大方法: 第一步:.loc[]方法,传入行列标签 使用.loc…

Java | 一分钟掌握定时任务 | 9 - PowerJob分布式定时任务

作者:Mars酱 声明:本文章由Mars酱整理编写,部分内容来源于网络,如有疑问请联系本人。 转载:欢迎转载,转载前先请联系我! 前言 我们选择一套框架或者技术的时候,一定要知道它的特点和…

带你深入理解自定义View和自定义ViewGroup

自定义 View 和自定义 ViewGroup 是 Android 开发中常见的两种自定义视图的方式。它们允许开发者根据自己的需求和设计来创建完全定制的界面元素。下面将详细介绍自定义 View 和自定义 ViewGroup,并对它们的实现和使用进行解析。 一、自定义 View 自定义 View 是指…

Java中常见的垃圾回收器 Serial、Parallel、CMS、G1 和 ZGC简介

Java中有几种常见的垃圾回收器,每种垃圾回收器都有其特定的工作方式和回收策略。下面列举了常见的Java垃圾回收器,并对其进行详细说明。 Serial 垃圾回收器: 回收过程:单线程回收器,使用标记-清除算法。它首先暂停所…