天天看点

分享10个你可能会用到 Python 自动化项目,提升你的工作效率

作者:前端达人
转载说明:原创不易,未经授权,谢绝任何形式的转载

针对日常问题的迷你 Python 项目

分享10个你可能会用到 Python 自动化项目,提升你的工作效率

通过使用 Python 创建迷你项目,让您的日常生活自动化,这些项目可以自动化您的日常工作,例如获取新闻、编辑图像、获取 Web 数据、发送 WhatsApp 消息等等。在本文中,我将向您展示 10 个 Python 迷你自动化项目及其完整代码。因此,将其放入您的清单中,让我们开始吧。

1、迷你照片编辑器

使用 Python 中的这个自动化迷你项目制作您自己的照片编辑器。该项目脚本使用图像处理模块,允许您使用裁剪、调整大小、翻转、模糊、增强、压缩等功能。

注意:您可以通过探索 Scikit-image 模块来扩展项目功能。
# 导入所需的库
# 请确保已经安装了scikit-image库:pip install scikit-image
from skimage import io

# 加载图片
Pic = io.imread('photo.jpg')

# 获取图片的细节信息
print(Pic.shape)  # 打印图片的尺寸信息,即高度、宽度和通道数
print(Pic.dtype)  # 打印图片的数据类型,通常为uint8,表示8位无符号整数,范围在0到255之间

# 调整图片尺寸
Pic = io.resize(Pic, (10, 10))  # 将图片调整为10x10像素的大小

# 裁剪图片
Pic = io.crop(Pic, ((0, 0), (10, 10), (7, 6)))  # 对图片进行裁剪,保留指定区域

# 对图片进行高斯模糊
Pic = io.gaussian(Pic, sigma=1)  # 使用高斯滤波进行图片模糊,sigma表示模糊程度

# 翻转图片
Pic = io.flip(Pic, axis=0)  # 对图片进行垂直翻转

# 压缩图片
Pic = io.imsave('photo.jpg', Pic, quality=50)  # 将处理后的图片保存为photo.jpg文件,quality表示图片质量,值为0到100

# 旋转图片
Pic = io.rotate(Pic, angle=90)  # 对图片进行逆时针旋转90度

# 将图片转换为灰度图
Pic = io.rgb2gray(Pic)  # 将彩色图片转换为灰度图

# 调整图片亮度
Pic = io.adjust_gamma(Pic, gamma=0.5)  # 调整图片的亮度,gamma值小于1会使图片变暗

# 增强图片对比度
Pic = io.equalize_adapthist(Pic, clip_limit=0.03)  # 使用自适应直方图均衡化增强图片对比度

# 保存处理后的图片
io.imsave('photo.jpg', Pic)  # 将最终处理后的图片保存为photo.jpg文件
           

2、新闻抓取应用

通过这个小型自动化项目以编程方式获取每日头条新闻。该脚本可让您从 TheGuardian 新闻网站获取最新头条新闻以及完整的新闻文章链接。

# 导入所需的库
# 请确保已经安装了requests和beautifulsoup4库:pip install requests beautifulsoup4
import requests
from bs4 import BeautifulSoup

# 设置目标网址
link = "https://www.theguardian.com/world"

# 设置请求头信息
headers = {"Content-Type": "text"}

# 发起GET请求并获取网页内容
response = requests.request("GET", link, headers=headers)

# 解析网页内容
parser = BeautifulSoup(response.text, "html.parser")

# 使用BeautifulSoup的find_all方法查找所有具有class属性为"fc-item__content"的div元素
for x in parser.find_all("div", class_="fc-item__content"):
    # 查找每个"fc-item__content" div元素下的标题h3标签
    title = x.find("h3")
    # 打印新闻标题
    print("Title:", title.text)
    
    # 查找每个"fc-item__content" div元素下的链接a标签
    url = x.find("a")
    # 打印新闻链接
    print("URL:", url["href"])
           

3、Py 视频播放器

使用 Python 语言创建您自己的 VLC 视频播放器。这个小型自动化项目使用 Opencv-python 模块来读取视频文件并在图像序列中逐帧加载视频。您也可以在项目中编辑每秒帧数,例如 30fps 或 60fps,请检查下面的代码。

# Py Video Player
# pip install opencv-python
from cv2 import *
from time import sleep
filename = "video.mp4"
plyer = VideoCapture(filename)
fps = plyer.get(CAP_PROP_FPS)
while True:
    data, frame = plyer.read()
    if data:
        imshow('video', frame)
        sleep(1/fps)
        if waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break           

4、CSV 解析器

想要在 CSV 文件中获取和写入数据,然后尝试这个小型自动化项目,它指导您如何解析 CSV 文件并使用 Pandas 模块追加或写回文件。

# CSV Parser
# pip install pandas
import pandas
# Read CSV file
csv = pandas.read_csv("file.csv")
# Parse whole data
data = csv.values
print(data)
# Parse Specific Columns
data = csv[["Col1", "Col2"]].values
# Parse Specific Rows
data = csv.iloc[0:5].values
# Convert CSV to String List
data = csv.values.tolist()
# Convert CSV to JSON
data = csv.to_json()
# Write new CSV file
data = {"Col1": [11, 22, 33]}
csv = pandas.DataFrame(data)
csv.to_csv("file.csv", index=False)
# Append New row to CSV file
data = {"Col2": [21, 42, 53]}
csv = pandas.DataFrame(data)
csv.to_csv("file.csv", mode="a", header=False, index=False)           

5、二维码扫描器应用程序

这个 Python 迷你自动化项目可让您扫描任何二维码并获取其数据。这个方便的脚本对于以编程方式一次扫描大量二维码非常有用。

# Qrcode Scanning App
# pip instll pyzbar
import pyzbar.pyzbar as zbar
import cv2
def Scan_Qrcode(qr_img):
    # Read Image
    im = cv2.imread(qr_img)
    # Decode Image
    decoded = zbar.decode(im)
    # Print Data
    for obj in decoded:
        print("Qr Data: ", obj.data)
if __name__ == "__main__":
    Scan_Qrcode("qr.png")
           

6、Whatsapp 消息发送者

希望自动化您的 WhatsApp 消息,那么这里有一个适合您的小型自动化项目,可让您向联系人和群组发送 WhatsApp 文本消息。该项目还可以方便地向联系人发送带有图像的文本消息。

# 导入所需的库
# 请确保已经安装了pywhatkit库:pip install pywhatkit
import pywhatkit as wat

# 即时发送文本消息
wat.sendwhatmsg_instantly("+xxxxxxxxxxxx", "Hello World")
# 发送文本消息并指定发送时间
wat.sendwhatmsg("+xxxxxxxxxx", "Hi from Python", 11, 20)
# 发送图片消息并指定发送时间
wat.sendwhats_image("+xxxxxxxxxx", "image.jpg", "Hi from Python", 11, 20)
# 在群组中发送文本消息并指定发送时间
wat.sendwhatmsg_to_group("+xxxxxxxxxx", "Hi from Python", 11, 20)
# 发送文本消息给所有联系人并指定发送时间
wat.sendwhatmsg_to_all("Hi from Python", 11, 20)
           

7、图片转视频

使用几行代码将图像序列转换为视频格式。这个方便的迷你自动化项目使用 Moviepy 模块,可让您轻松将图像序列转换为视频。

# 导入所需的库
# 请确保已经安装了moviepy库:pip install moviepy
from moviepy.editor import *
import os

# 定义一个函数来将图片转换为视频
def make_video(images):
    frames = []
    for img in images:
        # 将每张图片加载为一个视频帧,并设置显示时间为2秒
        n_frame = ImageClip(img).set_duration(2)
        frames.append(n_frame)
    
    # 使用concatenate_videoclips函数将所有视频帧连接成一个视频剪辑
    clip = concatenate_videoclips(frames)
    
    # 将合成的视频保存为video.mp4文件,设置帧率为24
    clip.to_videofile("video.mp4", fps=24)

# 调用函数将img1.jpg、img2.jpg和img3.jpg合成为视频
make_video(["img1.jpg", "img2.jpg", "img3.jpg"])
           

8、网页抓取

通过使用 Beautifulsoup 模块的小型自动化项目轻松解析网页数据。该项目脚本可以帮助您从 Web 源代码中获取文本,甚至可以让您按类、Id、Xpath 等查找元素。

# 导入所需的库
# 请确保已经安装了bs4库和html5lib库:pip install bs4 html5lib
import bs4

# 使用bs4库加载网页内容
with open('webpage.html') as html_file:
    html = bs4.BeautifulSoup(html_file, "html5lib")

# 获取网页的标题
title = html.title.text
print(title)

# 根据ID查找元素
match = html.find(id='data')
print(match)

# 根据class名称查找元素
match = html.find(class_='data')
print(match)

# 根据xpath查找元素
xpath = html.find('div', attrs={'id': 'value12'})
print(xpath)

# 查找所有特定标签的元素
for match in html.find_all('div'):
    print(match)

# 查找所有链接并获取其href属性
for link in html.find_all('a'):
    print(link.get('href'))

# 查找所有图像并获取其src属性
for image in html.find_all('img'):
    print(image.get('src'))

# 提取整个网页的文本内容
print(html.get_text())           

9、获取网站状态

想要检查某个特定网站是在线还是关闭,那么这个自动化项目将帮助您。这个简单的项目使用Request-HTML模块可以检查动态和静态网站的状态。

# Check Web Status
# pip install requests-html
import requests_html as requests
url = "https://www.twitter.com/"
session = requests.HTMLSession()
req = session.get(url, timeout=10)
req.html.render(sleep=1)
if req.status_code == 200:
    print("Web is live")
else:
    print("Web is down")           

10、强密码生成器

通过生成强密码来增强您的隐私和数字安全。这个迷你项目使用 Pyperclip 模块,让您生成一个强密码,包括任意长度和强度的字母数字和标点符号。

# Strong Password Generator
# pip install pyperclip
import random as r
import string as st
import pyperclip
def password_generator():
    passw = []
    pass_length = int(input("How many characters password you want: "))
    for i in range(pass_length):
        string = st.ascii_letters + st.punctuation + st.digits 
        passw.append(r.choice(string))
    passw = "".join(passw)
    pyperclip.copy(passw)
    print(f"Your password is: {passw}")
if __name__ == "__main__":
    password_generator()
           

结束

由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。