10个神级Python自动化脚本助力轻松工作

大家好,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(1, 100),
            "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("<Double-Button-1>", copy_to_clipboard)

root.mainloop()
  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python慕遥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值