
Useful Python Automation Scripts for Workflow
Introduction
Python’s simplicity, readability, and vast library ecosystem make it a powerhouse for automation. Whether you’re a beginner looking to save time or a professional aiming to optimize workflows, Python scripts can transform repetitive tasks into seamless processes. In this guide, we’ll explore 10 Python automation scripts that solve real-world problems, complete with code examples and customization tips.
1. Automated File Organizer
Problem: Cluttered folders with mixed file types.
Solution: A script that categorizes files into folders (e.g., Images, Documents) based on extensions.
import os
import shutil
def organize_files(directory="Downloads"):
path = os.path.expanduser(f"~/{directory}")
for file in os.listdir(path):
if os.path.isfile(os.path.join(path, file)):
file_type = file.split('.')[-1].lower()
target_dir = os.path.join(path, file_type.capitalize() + "s")
os.makedirs(target_dir, exist_ok=True)
shutil.move(os.path.join(path, file), os.path.join(target_dir, file))
organize_files()
Why It Matters: Keep your workspace tidy without manual effort. Extend this script to handle custom file types or log activity.
2. Web Scraper for Data Extraction
Problem: Manually collecting data from websites.
Solution: Use requests
and BeautifulSoup
to scrape product prices or news headlines.
import requests
from bs4 import BeautifulSoup
url = "https://example.com/products"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
for item in soup.select(".product-name"):
print(item.text.strip())
Pro Tip: Respect website robots.txt
and add delays to avoid overwhelming servers.
3. Automated Email Sender
Problem: Sending repetitive emails manually.
Solution: Use smtplib
to automate newsletters or notifications.
import smtplib
from email.message import EmailMessage
def send_email(subject, body, to):
msg = EmailMessage()
msg.set_content(body)
msg["Subject"] = subject
msg["From"] = "your_email@gmail.com"
msg["To"] = to
with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
server.login("your_email@gmail.com", "your_app_password")
server.send_message(msg)
send_email("Monthly Report", "Attached is the report.", "client@example.com")
Note: Use app-specific passwords for Gmail and avoid hardcoding credentials.
4. Social Media Auto-Poster
Problem: Managing multiple social media accounts.
Solution: Use APIs like Tweepy (Twitter) or Facebook SDK to schedule posts.
import tweepy
client = tweepy.Client(
consumer_key="API_KEY",
consumer_secret="API_SECRET",
access_token="ACCESS_TOKEN",
access_token_secret="ACCESS_SECRET"
)
client.create_tweet(text="Hello, Twitter! Automated via Python 🚀")
Use Case: Schedule posts during peak engagement times.
5. Data Backup Script
Problem: Risk of losing critical files.
Solution: Automate backups using zipfile
and schedule
.
import zipfile
import os
from datetime import datetime
def backup(source_dir="Documents", backup_dir="Backups"):
timestamp = datetime.now().strftime("%Y%m%d")
with zipfile.ZipFile(f"{backup_dir}/backup_{timestamp}.zip", "w") as zipf:
for root, _, files in os.walk(source_dir):
for file in files:
zipf.write(os.path.join(root, file))
backup()
Customize: Add cloud upload functionality using AWS S3 or Google Drive APIs.
6. System Monitoring Tool
Problem: Tracking server/PC health manually.
Solution: Use psutil
to monitor CPU, memory, and disk usage.
import psutil
import time
while True:
cpu_usage = psutil.cpu_percent()
memory_usage = psutil.virtual_memory().percent
print(f"CPU: {cpu_usage}%, Memory: {memory_usage}%")
time.sleep(60) # Check every minute
Advanced: Send alerts via email or Slack if thresholds are exceeded.
7. PDF Merger for Document Handling
Problem: Combining multiple PDFs manually.
Solution: Merge PDFs using PyPDF2
.
from PyPDF2 import PdfMerger
merger = PdfMerger()
for pdf in ["doc1.pdf", "doc2.pdf"]:
merger.append(pdf)
merger.write("combined.pdf")
merger.close()
Bonus: Add watermarks or encrypt output files.
8. Task Scheduler for Daily Routines
Problem: Forgetting repetitive daily tasks.
Solution: Use the schedule
library to run scripts at set times.
import schedule
import time
def job():
print("Backing up database...")
schedule.every().day.at("02:00").do(job)
while True:
schedule.run_pending()
time.sleep(1)
9. Image Resizer for Bulk Processing
Problem: Resizing hundreds of images manually.
Solution: Automate resizing with Pillow.
from PIL import Image
import os
def resize_images(input_dir, output_dir, size=(800, 600)):
os.makedirs(output_dir, exist_ok=True)
for img in os.listdir(input_dir):
image = Image.open(os.path.join(input_dir, img))
image.thumbnail(size)
image.save(os.path.join(output_dir, img))
resize_images("Raw_Images", "Processed_Images")
10. Password Generator & Vault
Problem: Creating and storing secure passwords.
Solution: Generate strong passwords and save them encrypted.
import secrets
import string
def generate_password(length=12):
chars = string.ascii_letters + string.digits + "!@#$%"
return ''.join(secrets.choice(chars) for _ in range(length))
print(generate_password()) # Example: x7!kL9$qR2vE
Security Tip: Use libraries like cryptography
to encrypt password files.
Conclusion
Python automation scripts are versatile tools to eliminate grunt work, whether you’re organizing files, scraping data, or managing systems. Start with these examples, tweak them to your needs, and explore libraries like selenium
for browser automation or pandas
for data tasks. By integrating Python into your routine, you’ll reclaim hours for creativity and innovation.
Which script will you try first? Share your use cases in the comments!
Comments