17个令人惊叹的Python自动化脚本,我每天都在使用
点击此处查看最新的网赚项目教程
提升我生产力和效率的脚本
我已经使用Python将近5年了,其中最吸引我并激励我进行更多研究的一点是它实现自动化的能力。在过去的一年中,我一直在探索Python的自动化方面,并发现了一些令人惊喜的Python包、事实和有趣的脚本。在这篇文章中,我将分享我每天使用的一些自动化脚本,这些脚本提高了我的生产力和效率。
1. Speakify
我喜欢读书,但讨厌自己读书,我更喜欢听书,这个自动化脚本对我来说是救星,我经常用它来听PDF并将其转换为稍后听的有声书。
代码示例:
import PyPDF2
import pyttsx3
file = open('story.pdf', 'rb') # 打开PDF文件
readpdf = PyPDF2.PdfReader(file) # 读取PDF文件
speaker = pyttsx3.init() # 初始化文本到语音引擎
speaker.setProperty('rate', 200) # 设置语速
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.say(text)
# speaker.runAndWait()
speaker.save_to_file(text, 'story.mp3') # 保存最后提取的文本到音频文件
speaker.runAndWait()
speaker.stop() # 停止播放器
file.close() # 关闭PDF文件
实际应用2. TabTornado
在编写这个脚本之前,我常常将我发现有趣的内容加入书签,准备第二天阅读,但几周后我意识到我的书签栏越来越大,每天都很难找到新的书签。所以我想出了一个Python方式来解决这个问题。使用这个自动化脚本,我只需复制并粘贴所有链接,然后单击一下就可以打开它们。
代码示例:
import webbrowser
with open('links.txt') as file:
links = file.readlines()
for link in links:
webbrowser.open('link')
应用
提高工作效率:需要检查多个工作相关网站的专业人士可以简化他们的日常工作,专注于内容而非打开链接的过程。学习与发展:在线学习者可以一次性打开所有课程材料、文章和资源,使他们的学习会话更加高效。
3. PicFetcher
收集大量图像数据是计算机视觉项目的一个关键挑战。正如吴恩达所指出的,拥有一个大数据集可能比使用的特定算法更重要。高质量的数据对于提高机器学习模型的性能和准确性至关重要。这个自动化脚本让您可以在几分钟内以最少的编码工作量从网络上下载一定数量的图像,从而使该过程变得更容易。
代码示例:
from simple_image_download import simple_image_download as simp
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_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
for file in python_files:
print(f"Analyzing file: {file}")
file_path = os.path.join(directory, file)
print("nRunning pylint...")
pylint_command = f"pylint {file_path}"
subprocess.run(pylint_command, shell=True)
print("nRunning flake8...")
flake8_command = f"flake8 {file_path}"
subprocess.run(flake8_command, shell=True)
if __name__ == "__main__":
directory = r"C:UsersabhayOneDriveDesktopPart7"
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)
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
在工作中经常需要记住重要任务。为了解决这个问题并提升我的生产力,发现了MemoryMate,它是我的数字记忆辅助工具。它在指定的时间后发送自定义消息的提醒,以确保我按时完成任务。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
toaster = ToastNotifier()
cpu_threshold = 40 # CPU使用率阈值(百分比)
memory_threshold = 40 # 内存使用率阈值(百分比)
gpu_threshold = 40 # GPU使用率阈值(百分比)
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()
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)
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)
time.sleep(300) # 每5分钟检查一次资源
except Exception as e:
print("An error occurred:", str(e))
break
应用:
该脚本可用于日常场景,如玩游戏、运行本地服务器、本地训练 DL 模型等。通过跟踪所有资源,您可以确保您的脚本或任务使用最佳内存,如果没有,您可以相应地进行优化。资源监视器仪表板(您可以使用 Tkinter 创建仪表板以获取类似于任务栏的实时资源图,并添加通知和高内存使用率声音警报)。
9. EmailBlitz
无论是进行营销活动、新闻通讯还是组织更新,处理大量电子邮件通信都可能具有挑战性。这个Python自动化脚本通过允许您轻松地批量发送电子邮件来简化任务。它简化了沟通过程,使您能够同时接触到大量收件人,并确保及时有效地传递信息。这对于市场营销人员、管理员或任何需要发送大量电子邮件的人来说,这个脚本提高了生产力,节省了时间,并帮助保持您的沟通具有个人触感。
代码示例:
import smtplib
from email.message import EmailMessage
import pandas as pd
def send_email(remail, rsubject, rcontent):
email = 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)
smtp.send_message(email)
print("email sent 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()
11. BriefBot
我每天都喜欢阅读文章、研究论文和新闻出版物,我知道很多人也有这个习惯。然而,找时间阅读完整的文章可能很有挑战性。这个Python自动化脚本解决了这个问题,它使用神经网络生成快速摘要。它利用网页抓取提取文章内容,并将其输入预训练的模型中,该模型生成一份摘要,节省时间,使您能更容易地获取信息。
代码示例:
from transformers import BartForConditionalGeneration, BartTokenizer
import requests
from bs4 import BeautifulSoup
def summarize_article(article_text, max_length=150):
model_name = "facebook/bart-large-cnn"
tokenizer = BartTokenizer.from_pretrained(model_name)
model = BartForConditionalGeneration.from_pretrained(model_name)
inputs = tokenizer.encode("summarize: " + article_text, return_tensors="pt", max_length=1024, truncation=True)
summary_ids = model.generate(inputs, max_length=max_length, min_length=50, length_penalty=2.0, num_beams=4, early_stopping=True)
summary = tokenizer.decode(summary_ids[0], skip_special_tokens=True)
return summary
def scrape_webpage(url):
headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"}
response = requests.get(url, headers=headers)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'html.parser')
all_text = soup.get_text(separator='n', strip=True)
return all_text
if __name__ == "__main__":
webpage_url = "https://thehackernews.com/2024/07/new-ransomware-group-exploiting-veeam.html"
webpage_text = scrape_webpage(webpage_url)
if webpage_text:
summary = summarize_article(webpage_text)
print("nSummarized Article:")
print(summary)
else:
print("Webpage scraping failed.")
12. SpellGuard
无论我们的英语有多熟练,当撰写长篇报告、文章或研究论文时,我们都会犯拼写和语法错误。在人工智能时代,许多强大的Python包可以帮助纠正这些错误,并提供精美的校对。这个Python脚本利用AI来检测和纠正拼写和语法错误,确保您的写作清晰、准确、专业。
代码示例:
!pip install lmproof
import lmproof as lm
def Proofread(text):
proof = lm.load("en")
error_free_text = proof.proofread(text)
return error_free_text
TEXT = '' # 在这里放置样本文本
print(Proofread(TEXT))
13. LinkStatus
拥有一个博客站点仍然是许多作家的梦想。确保您的所有链接都正常工作对于维持专业和用户友好的博客至关重要。坏掉的链接可能会挫败读者的热情,损害您站点的信誉。这个Python自动化脚本允许您轻松检查多个URL的网络连接性。通过定期监控您的URL,这个脚本确保您的链接始终在线且功能正常,增强了您站点的可靠性和用户体验。
代码示例:
import csv
import requests
import pprint
def get_status(website):
try:
status = requests.get(website).status_code
return "Working" if status == 200 else "Error 404"
except:
return "Connection Failed!!"
def main():
with open("sites.txt", "r") as fr:
websites = [line.strip() for line in fr]
web_status_dict = {website: get_status(website) for website in websites}
pprint.pprint(web_status_dict)
with open("web_status.csv", "w", newline='') as csvfile:
fieldnames = ["Website", "Status"]
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for website, status in web_status_dict.items():
writer.writerow({"Website": website, "Status": status})
print("Data Uploaded to CSV File!!")
if __name__ == "__main__":
main()
14. DailyDigest
了解您所在城市、州、国家或世界的最新动态很重要,但我们繁忙的日程通常阻碍了我们花时间阅读新闻。这个自动化脚本通过从新闻抓取流行新闻并朗读给您听,解决了这个问题。无论您是在开始新的一天还是在外出途中,这个脚本都能确保您毫不费力地了解到头条新闻故事。
代码示例:
import pyttsx3
import requests
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
def speak(audio):
engine.say(audio)
engine.runAndWait()
def trndnews():
url = "http://newsapi.org/v2/top-headlines?country=us&apiKey=GET_YOUR_OWN"
page = requests.get(url).json()
article = page["articles"]
results = []
for ar in article:
results.append(ar["title"])
for i in range(len(results)):
print(i + 1, results[i])
speak(results)
trndnews()
15. QRGenie
二维码的流行度已经飙升,人们开始使用它们进行付款和接收付款。如今,它们被用于分享社交链接、秘密消息、优惠券代码等。这个Python自动化脚本帮助您创建自定义数据的QR码,让您毫不费力地分享信息,给您的观众留下深刻印象。
代码示例:
import qrcode
def generate_qr_code(link, filename):
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_L,
box_size=10,
border=4,
)
qr.add_data(link)
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
img.save(filename)
if __name__ == "__main__":
generate_qr_code("https://abhayparashar31.medium.com/", "Profile.png")
print("QR code saved successfully!!")
16. ShrinkLink
我每天处理许多链接,有些我存储,有些我与读者分享。我最不喜欢的URL部分是它们的长度,这可能很烦人并且难以阅读。这个Python自动化脚本有效地解决了这个问题,它使用外部API将长URL转换为短、易管理的链接。
代码示例:
import pyshorteners
def generate_short_url(long_url):
s = pyshorteners.Shortener()
return s.tinyurl.short(long_url)
long_url = input('Paste Long URLn')
short_url = generate_short_url(long_url)
print(short_url)
17. CaptureIt
无论您是游戏玩家、影响者、艺术家还是开发者,屏幕录制软件对于捕捉您的活动至关重要。然而,许多现有解决方案要么成本高昂,要么施加限制,如水印和时间限制。这个Python自动化脚本提供了一个直接的解决方案,用于无水印、无时间限制的屏幕录制,并且可以自定义屏幕窗口选项。
代码示例:
import cv2
import numpy as np
import pyautogui
SCREEN_SIZE = tuple(pyautogui.size())
fourcc = cv2.VideoWriter_fourcc('M', 'J', 'P', 'G')
fps = 12.0
record_seconds = 20
out = cv2.VideoWriter("video.mp4", fourcc, fps, SCREEN_SIZE)
for _ in range(int(record_seconds * fps)):
img = pyautogui.screenshot(region=(0, 0, 500, 900))
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
cv2.imshow("video frame", frame)
if cv2.waitKey(1) == ord("q"):
break
cv2.destroyAllWindows()
out.release()
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: qs62318888
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网