社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

10个神级Python自动化脚本,工作更轻松

AI科技论谈 • 10 月前 • 197 次点击  

分享10个精心挑选的自动化脚本,帮助开发者们提升工作效率和优化操作流程。

长按关注《AI科技论谈》

Python因自动化能力强一直是开发者们的宠儿。它简化了日常编程任务,同时更激发了探索创新解决方案的热情。本文分享10个精心挑选的自动化脚本,帮助开发者们提升工作效率和优化操作流程。

1 Speakify

Speakify 是专注于语音交互的人工智能助手,可以帮助用户通过语音进行各种任务,如信息搜索、日程管理、智能家居控制等。它采用先进的语音识别和自然语言处理技术,能够准确理解用户的语音输入,并给出相应的语音输出。

喜爱阅读的人可以通过特定的自动化脚本将PDF文件转换成有声书。

import PyPDF2
import pyttsx3

# 打开 PDF 文件 (输入 PDF 文件路径)
file = open('story.pdf''rb')
readpdf = PyPDF2.PdfReader(file)

# 初始化文本转语音引擎
speaker = pyttsx3.init()
rate = speaker.getProperty('rate')   # 获取当前语速
speaker.setProperty('rate'200)

volume = speaker.getProperty('volume')
speaker.setProperty('volume'1)  # 设置音量为最大 (0.0 到 1.0)

# 获取并设置不同的语音
voices = speaker.getProperty('voices')
for voice in voices:
    if "english" in voice.name.lower() and "us" in voice.name.lower():
        speaker.setProperty('voice', voice.id)
        break
# 迭代遍历 PDF 的每一页
for pagenumber in range(len(readpdf.pages)):
    # 从页面中提取文本
    page = readpdf.pages[pagenumber]
    text = page.extract_text()
    
    # 使用 speaker 朗读文本
    # speaker.say(text)
    # speaker.runAndWait()

# 将最后提取的文本保存为音频文件 (如果需要)
speaker.save_to_file(text, 'story.mp3')
speaker.runAndWait()

# 停止 speaker
speaker.stop()

# 关闭 PDF 文件
file.close()

应用领域包括:

  • 辅助视障人士:为视障人群提供文字内容的音频形式,帮助视障人士便捷地获取所需信息。

  • 移动学习:用户可以在通勤或锻炼时通过收听文章和教科书,实现随时随地的学习。

  • 语言学习:为语言学习者提供文本的音频资料,帮助提高听力技能。

  • 教育领域:为学生提供阅读材料的音频版本,增加学习的灵活性和多样性。

2 TabTornado

TabTornado 是基于浏览器的标签管理工具,帮助用户更有效地管理开放的浏览器标签页。TabTornado 功能强大且易于使用,可以有效地帮助用户提高浏览效率,减少标签页混乱带来的问题。

下面Python编写的自动化脚本可以解决书签管理难题。用户只需将链接复制粘贴至脚本,即可一键操作打开所有网页。

import webbrowser
with open('links.txt'as file:
    links = file.readlines()
    for link in links: 
        webbrowser.open('link')

应用领域包括:

  • 提升工作效率:对于需要频繁访问多个工作相关网站的专业人士,此工具能够帮助他们优化日常工作流程,将注意力集中在内容本身而非打开链接的过程。

  • 促进学习与发展:在线学习者可以一次性访问所有课程资料、文章和资源,从而提升学习效率。

3 PicFetcher

在计算机视觉领域,积累丰富的图像数据资源是项目成功的关键。正如著名计算机科学家Andrew Ng所强调的,一个庞大的数据集往往比算法本身更能决定模型的成败。数据的质量直接影响到机器学习模型的表现和精确度。

这个自动化脚本让用户能够在极短的时间内,以较低的编程成本,下载大量网络图像,大大提高了数据收集的效率。

# 导入必要的模块和函数
from simple_image_download import simple_image_download as simp 

# 创建 response 对象
response = simp.simple_image_download

## 关键词
keyword = "Dog"

# 下载图像
try:
    response().download(keyword, 20)
    print("Images downloaded successfully.")
except Exception as e:
    print("An error occurred:", e)

应用领域包括:

  • 构建计算机视觉数据集
  • 创作横幅图像内容
  • 营销活动
  • 学术研究

4 PyInspector

开发者在Python编程中经常面临一个难题:代码调试。错误追踪往往让人头疼不已,仿佛陷入了一张无形的大网。

编写简洁高效的代码固然重要,但手动检查代码质量却是一项艰巨的挑战。

为此,下面这个自动化脚本集成了Pylint和Flake8两大工具,能够深入分析代码,与行业编码标准进行对照,并准确揪出逻辑上的疏漏。不仅确保代码的规范性,也保障其准确性,让编程工作更加顺畅。

import os
import subprocess

def analyze_code(directory):
    # 列出目录中的 Python 文件
    python_files = [file for file in os.listdir(directory) if file.endswith('.py')]

    if not python_files:
        print("No Python files found in the specified directory.")
        return

    # 使用 pylint 和 flake8 分析每个 Python 文件
    for file in python_files:
        print(f"Analyzing file: {file}")
        file_path = os.path.join(directory, file)

        # 运行 pylint
        print("\nRunning pylint...")
        pylint_command = f"pylint {file_path}"
        subprocess.run(pylint_command, shell=True)

        # 运行 flake8
        print("\nRunning flake8...")
        flake8_command = f"flake8 {file_path}"
        subprocess.run(flake8_command, shell=True)

if __name__ == "__main__":
    directory = r"C:\Users\abhay\OneDrive\Desktop\Part7"
    analyze_code(directory)

5 DataDummy

当数据分析师需要构建模型的测试数据,或是日常用户想要快速填充表格的随机信息时,这个Python自动化脚本都能提供很大的帮助。它能够创造出既逼真又完全虚构的数据集,非常适合用于软件测试、产品开发和环境模拟等场合。用户可以便捷地生成如姓名、电子邮箱、电话号码等一系列信息,这个工具以其多功能性,满足各种数据生成的需求。

import pandas as pd
from faker import Faker
import random

fake = Faker()

def generate_fake_data(num_entries=10):
    data = []

    for _ in range(num_entries):
        entry = {
            "Name": fake.name(),
            "Address": fake.address(),
            "Email": fake.email(),
            "Phone Number": fake.phone_number(),
            "Date of Birth": fake.date_of_birth(minimum_age=18, maximum_age=65).strftime("%Y-%m-%d"),
            "Random Number": random.randint(1100),
            "Job Title": fake.job(),
            "Company": fake.company(),
            "Lorem Ipsum Text": fake.text(),
        }
        data.append(entry)

    return pd.DataFrame(data)

if __name__ == "__main__":
    num_entries = 10  # 你可以调整需要生成的条目数
    fake_data_df = generate_fake_data(num_entries)

    

## 包含虚假数据的数据框
fake_data_df

6 BgBuster

这个自动化脚本是日常工作中不可或缺的工具。对于经常处理图像的写作者来说,获取无背景的图像是常见的需求。市面上虽有不少在线工具可以完成这项工作,但考虑到图片在上传过程中可能引发的隐私和安全问题,这个Python脚本利用rembg包在本地环境中就能去除图片背景,既保障了图片的安全,也维护了隐私。

from rembg import remove 
from PIL import Image

## 输入和输出图像的路径
input_img = 'monkey.jpg'
output_img = 'monkey_rmbg.png'

## 加载和移除背景
inp = Image.open(input_img)
output = remove(inp)

## 将移除背景后的图像保存到与输入图像相同的位置
output.save(output_img)

7 MemoryMate

这个工具可以帮忙解决在忙碌的工作中不错过任何重要事项,能够在设定的时间后,向用户发送含有自定义提醒信息的通知,有效确保准时完成各项任务。

from win10toast import ToastNotifier
import time

toaster = ToastNotifier()

def set_reminder():
    reminder_header = input("What would you like me to remember?\n")
    related_message = input("Related Message:\n")
    time_minutes = float(input("In how many minutes?\n"))

    time_seconds = time_minutes * 60

    print("Setting up reminder...")
    time.sleep(2)
    print("All set!")

    time.sleep(time_seconds)

    toaster.show_toast(
        title=f"{reminder_header}",
        msg=f"{related_message}",
        duration=10,
        threaded=True
    )

    while toaster.notification_active():
        time.sleep(0.005)

if __name__ == "__main__":
    set_reminder()

8 MonitorMax

系统资源监控是实时展示各类资源使用情况的关键,对于用户、系统管理员和开发人员来说,它是一个不可或缺的工具,能帮助跟踪系统性能,发现潜在瓶颈,并确保资源得到有效管理。

这个Python自动化脚本专门用于监控CPU、GPU、电池和内存的使用状况,一旦检测到任何资源的使用率超出安全阈值,就会立即发出警报。

import psutil
import time
from win10toast import ToastNotifier

# 初始化 ToastNotifier 对象
toaster = ToastNotifier()

# 设置 CPU 使用率、内存使用率、GPU 使用率和电池电量的阈值
cpu_threshold = 40  # 百分比
memory_threshold = 40  # 百分比
gpu_threshold = 40  # 百分比
battery_threshold = 100  # 百分比

# 无限循环来持续监控系统资源
while True:
    try:
        # 获取系统资源信息
        cpu_usage = psutil.cpu_percent(interval=1)
        memory_usage = psutil.virtual_memory().percent
        gpu_usage = psutil.virtual_memory().percent
        battery = psutil.sensors_battery()

        # 检查 CPU 使用率
        if cpu_usage >= cpu_threshold:
            message = f"CPU usage is high: {cpu_usage}%"
            toaster.show_toast("Resource Alert", message, duration=10)

        # 检查内存使用率
        if memory_usage >= memory_threshold:
            message = f"Memory usage is high: {memory_usage}%"
            toaster.show_toast("Resource Alert", message, duration=10)

        # 检查 GPU 使用率
        if gpu_usage >= gpu_threshold:
            message = f"GPU usage is high: {gpu_usage}%"
            toaster.show_toast("Resource Alert", message, duration=10)

        # 检查电池电量
        if battery is not None and battery.percent <= battery_threshold and not battery.power_plugged:
            message = f"Battery level is low: {battery.percent}%"
            toaster.show_toast("Battery Alert", message, duration=10)

        # 等待 5 分钟后再次检查资源
        time.sleep(300)

    except Exception as e:
        print("An error occurred:", str(e))
        break

应用场景:

这个脚本可以应用于日常的各种情境,比如玩游戏、运行本地服务器、本地训练深度学习模型等。通过监控所有资源,你可以确保脚本或任务使用最优化的内存,如果使用不是最优,你还可以相应地进行优化。资源监控仪表板(你可以使用Tkinter创建一个仪表板,获取实时资源使用图,类似于任务栏,并增加通知功能和高内存使用时的声音警报)。

9 EmailBlitz

面对市场营销、新闻简报或组织信息更新等场景,大量电子邮件的发送会让让人头疼不已。这个Python自动化脚本的出现,会让这种工作变得轻松许多。它通过批量发送功能,让邮件群发变得简单快捷,使得信息传递既迅速又高效。

对于需要处理大量邮件的营销人员、系统管理员等,这个脚本不仅能提升工作效率,更重要的是,它帮助用户在邮件沟通中保持个性化的触感,让每一条信息都显得更加贴心和人性化。

import smtplib 
from email.message import EmailMessage
import pandas as pd

def send_email(remail, rsubject, rcontent):
    email = EmailMessage()                          ## 创建 EmailMessage 对象
    email['from'] = 'The Pythoneer Here'            ## 发送人
    email['to'] = remail                            ## 收件人
    email['subject'] = rsubject                     ## 邮件主题
    email.set_content(rcontent)                     ## 邮件内容
    with smtplib.SMTP(host='smtp.gmail.com',port=587)as smtp:     
        smtp.ehlo()                                 ## 服务器对象
        smtp.starttls()                             ## 用于在服务器和客户端之间发送数据
        smtp.login(SENDER_EMAIL,SENDER_PSWRD)       ## 登录 Gmail 账号和密码
        smtp.send_message(email)                    ## 发送邮件
        print("email send to ",remail)              ## 打印成功消息


if __name__ == '__main__':
    df = pd.read_excel('list.xlsx')
    length = len(df)+1

    for index, item in df.iterrows():
        email = item[0]
        subject = item[1]
        content = item[2]

        send_email(email,subject,content)

10 ClipSaver

这个Python自动化脚本能够监控并捕捉你复制的所有文本内容,并在一个直观的图形界面中保存每一个文本片段。可以帮助避免在众多标签页中苦苦搜寻,不再担心丢失重要信息。这个脚本让一切变得井然有序,易于管理和访问。

import tkinter as tk
from tkinter import ttk
import pyperclip

def update_listbox():
    new_item = pyperclip.paste()
    if new_item not in X:
        X.append(new_item)
        listbox.insert(tk.END, new_item)
        listbox.insert(tk.END, "----------------------")
    listbox.yview(tk.END)
    root.after(1000, update_listbox)

def copy_to_clipboard(event):
    selected_item = listbox.get(listbox.curselection())
    if selected_item:
        pyperclip.copy(selected_item)

X = []

root = tk.Tk()
root.title("Clipboard Manager")
root.geometry("500x500")
root.configure(bg="#f0f0f0")

frame = tk.Frame(root, bg="#f0f0f0")
frame.pack(padx=10, pady=10)

label = tk.Label(frame, text="Clipboard Contents:", bg="#f0f0f0")
label.grid(row=0, column=0)

scrollbar = tk.Scrollbar(root)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)

listbox = tk.Listbox(root, width=150, height=150, yscrollcommand=scrollbar.set)
listbox.pack(pady=10)
scrollbar.config(command=listbox.yview)

update_listbox()

listbox.bind("", copy_to_clipboard)

root.mainloop()

推荐书单

《利用Python进行数据分析》(原书第3版)

本书是Python数学分析经典畅销书的升级版,由Python pandas项目的创始人Wes McKinney撰写。自2012年第1版出版以来,迅速成为该领域的权威指南,并且为了与时俱进,作者也在对本书内容进行持续更新,以摒弃一些过时、不兼容的工具,添加新的内容,用以介绍一些新性、新工具及方法。本书第3版针对Python 3.10和pandas 1.4进行了更新,并通过实操讲解和实际案例向读者展示了如何高效解决一系列数据分析问题。读者将在阅读过程中学习新版本的pandas、NumPy、IPython和Jupyter。

购买链接:https://item.jd.com/10090633844088.html

精彩回顾

动手实现GraphRAG,检索效果大幅提升

利用LlamaIndex和本地PDF文档,轻松打造知识图谱GraphRAG

基于Llama 3、Ollama、Milvus、LangChain,快速搭建本地RAG

LlamaIndex结合DSPy,进一步优化RAG系统

LaTeX数学公式排版,新手入门看这篇就够了

利用PyTorch CUDA编程,大幅提升Python性能

长按关注《AI科技论谈》
长按访问【IT今日热榜】,发现每日技术热点

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/173410
 
197 次点击