10个实用Python自动化脚本:从图片处理到网络测速

南乔
南乔
发布时间:2026-10-12| 3人浏览过
原创

本文精选10个简单实用的Python自动化脚本,涵盖图片水印添加、文件相似度检测、内容加密解密、照片转PDF、图像尺寸与特效处理、网速测试、货币汇率转换、二维码生成解析及简易Web应用开发。通过具体代码示例,帮助开发者快速实现常见任务的自动化,减少重复劳动,显著提升工作与学习效率。

在日常工作和学习中,我们常面临大量重复性操作。利用Python脚本实现自动化处理,能有效避免时间浪费,显著提升效率。以下分享10个实用的Python高级脚本,助您优化工作流。

1. 给照片添加水印

为照片添加水印的代码实现方式多样,以下示例展示了其中一种简洁的实现形式:

from PIL import Image
from PIL import ImageFont
from PIL import ImageDraw

def 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))

2. 检测文本文件的相似性

当需要对比两个文本文件的相似程度时,以下脚本可帮助您量化两者的雷同比例:

from difflib import SequenceMatcher

def 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)

3. 对文件内容进行加密

对于重要或机密的文件内容,建议进行加密处理以保障安全,具体代码如下:

from cryptography.fernet import Fernet

def 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)

前文脚本中的密钥为随机生成,您也可指定自定义密钥。使用自定义密钥的代码如下:

import pyAesCrypt

def Encryption(input_file_path, output_file_path, key):
    pyAesCrypt.encryptFile(input_file_path, output_file_path, key)
    print("File has been decrypted")

def Decryption(input_file_path, output_file_path, key):
    pyAesCrypt.decryptFile(input_file_path, output_file_path, key)
    print("File has been decrypted")

4. 将照片转换为PDF

若需将多张照片合并或转换为PDF格式,可使用以下代码实现:

import os
import img2pdf

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

5. 修改照片的长与宽

如需调整照片的尺寸(长宽),可参考以下代码进行缩放处理:

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)

6. 对于照片的其他操作

除调整尺寸外,还可对照片进行模糊化处理,代码如下:

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')

7. 测试网速

在进行网速测试前,需先安装依赖模块:

pip install speedtest-cli

随后即可执行网速测试脚本:

from speedtest import Speedtest

def 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)

8. 货币汇率的转换

例如,查询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

9. 生成二维码

以下代码实现了二维码的生成与解析功能:

import qrcode
from PIL import Image
from pyzbar.pyzbar import decode

def 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("文件名")

10. 制作一个简单的网页应用

利用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)

本文介绍了10个简单实用的Python自动化脚本。如需了解更多Python相关内容,欢迎查阅本站往期文章或继续浏览后续内容,感谢支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。