转载说明:原创不易,未经授权,谢绝任何形式的转载
针对日常问题的迷你 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()
结束
由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。