DEV Community

Max Klein
Max Klein

Posted on

Python Automation: 12 Scripts That Save Hours Every Week

Imagine spending 10 hours a week manually renaming files, formatting spreadsheets, or copying data between applications. Now imagine cutting that time down to minutes with a few lines of Python code. Automation isn’t just a productivity hack—it’s a game-changer for developers, analysts, and anyone who wants to reclaim their time. Python, with its simplicity and power, is the perfect tool for this mission. In this tutorial, I’ll walk you through 12 real-world Python scripts that can transform your workflow, saving you hours every week. Whether you’re a beginner or a seasoned developer, these examples will show you how to automate repetitive tasks, boost efficiency, and focus on what truly matters.


Prerequisites

Before diving into the scripts, ensure you have the following:

  • Python installed (3.7+ is recommended). Download it from python.org.
  • A code editor like VS Code, PyCharm, or Sublime Text.
  • Basic familiarity with Python syntax, including loops, conditionals, and functions.
  • Optional libraries: Some scripts will use third-party libraries like pandas, requests, and beautifulsoup4. Install them via pip install <library_name> if needed.

💡 Tip: Always use virtual environments to manage dependencies. Run python -m venv env to create one, then activate it with source env/bin/activate (Linux/Mac) or env\Scripts\activate (Windows).


1. Automate File Renaming and Organization

Manual file management is a time sink. Use Python to batch rename files or organize them into folders based on criteria like date or type.

Example: Rename Files with a Prefix

import os

# Folder containing files
folder_path = "path/to/your/files"
prefix = "report_"

for filename in os.listdir(folder_path):
    # Skip directories
    if os.path.isdir(os.path.join(folder_path, filename)):
        continue
    # Rename file
    new_name = prefix + filename
    os.rename(os.path.join(folder_path, filename), os.path.join(folder_path, new_name))
Enter fullscreen mode Exit fullscreen mode

⚠️ Warning: Always test scripts on a small sample folder first. Use print() statements to verify changes before executing.

Example: Organize Files by Extension

import shutil
import os

source_folder = "path/to/your/files"
destination_folder = "path/to/organized/folder"

# Create destination folders if they don't exist
for category in ["Images", "Documents", "Scripts"]:
    os.makedirs(os.path.join(destination_folder, category), exist_ok=True)

for filename in os.listdir(source_folder):
    file_path = os.path.join(source_folder, filename)
    if os.path.isfile(file_path):
        _, ext = os.path.splitext(filename)
        if ext.lower() in [".jpg", ".png"]:
            shutil.move(file_path, os.path.join(destination_folder, "Images", filename))
        elif ext.lower() in [".docx", ".pdf", ".txt"]:
            shutil.move(file_path, os.path.join(destination_folder, "Documents", filename))
        elif ext.lower() in [".py", ".ipynb"]:
            shutil.move(file_path, os.path.join(destination_folder, "Scripts", filename))
Enter fullscreen mode Exit fullscreen mode

2. Batch Convert Images to PDF

Convert a folder of images into a single PDF using Pillow and img2pdf.

Code Example

from PIL import Image
import img2pdf
import os

image_folder = "path/to/images"
output_pdf = "output.pdf"

# Get list of image files
images = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.lower().endswith((".png", ".jpg", ".jpeg"))]

# Convert to PDF
with open(output_pdf, "wb") as f:
    f.write(img2pdf.convert(images))
Enter fullscreen mode Exit fullscreen mode

📌 Tip: Install dependencies with pip install pillow img2pdf.


3. Web Scraping: Extract Data from Websites

Automate data collection from websites using requests and BeautifulSoup.

Example: Scrape Product Prices from an E-commerce Site

import requests
from bs4 import BeautifulSoup

url = "https://example-ecommerce-site.com/products"
response = requests.get(url)

if response.status_code == 200:
    soup = BeautifulSoup(response.text, "html.parser")
    products = soup.find_all("div", class_="product")
    for product in products:
        name = product.find("h2").text.strip()
        price = product.find("span", class_="price").text.strip()
        print(f"{name}: {price}")
else:
    print(f"Failed to fetch data. Status code: {response.status_code}")
Enter fullscreen mode Exit fullscreen mode

⚠️ Important: Respect website terms of service and robots.txt. Use requests responsibly and avoid overloading servers.


4. Automate Email Sending with Gmail

Send bulk emails using smtplib and email libraries.

Code Example

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

sender_email = "your_email@gmail.com"
receiver_email = "recipient@example.com"
password = "your_app_password"  # Generate via Google Account settings

subject = "Automated Email"
body = "This is a test email sent using Python."

# Create message
message = MIMEMultipart()
message["From"] = sender_email
message["To"] = receiver_email
message["Subject"] = subject
message.attach(MIMEText(body, "plain"))

# Send email
with smtplib.SMTP("smtp.gmail.com", 587) as server:
    server.starttls()
    server.login(sender_email, password)
    server.sendmail(sender_email, receiver_email, message.as_string())
Enter fullscreen mode Exit fullscreen mode

🔒 Security Note: Never hardcode passwords in scripts. Use environment variables or secure vaults for production.


5. Schedule Repeating Tasks with APScheduler

Run scripts at specific times using APScheduler.

Code Example

from apscheduler.schedulers.blocking import BlockingScheduler

def job():
    print("Task executed at", datetime.now())

scheduler = BlockingScheduler()
scheduler.add_job(job, "interval", minutes=5)
print("Scheduler started. Press Ctrl+C to exit.")
scheduler.start()
Enter fullscreen mode Exit fullscreen mode

📌 Tip: Use cron triggers for complex scheduling (e.g., "every Monday at 9 AM").


6. Automate Data Entry with CSV and Excel

Use pandas to read and write CSV/Excel files, eliminating manual data entry.

Example: Merge Data from Two CSVs

import pandas as pd

df1 = pd.read_csv("data1.csv")
df2 = pd.read_csv("data2.csv")
merged_df = pd.merge(df1, df2, on="ID")
merged_df.to_csv("merged_data.csv", index=False)
Enter fullscreen mode Exit fullscreen mode

📌 Best Practice: Always validate data types and handle missing values before merging.


7. Generate Reports with Pandas and Matplotlib

Automate report generation by combining data analysis and visualization.

Example: Sales Report

import pandas as pd
import matplotlib.pyplot as plt

# Load data
df = pd.read_csv("sales_data.csv")

# Analyze
monthly_sales = df.groupby("Month")["Sales"].sum()

# Plot
plt.figure(figsize=(10, 6))
monthly_sales.plot(kind="bar")
plt.title("Monthly Sales Report")
plt.xlabel("Month")
plt.ylabel("Sales")
plt.savefig("sales_report.png")
Enter fullscreen mode Exit fullscreen mode

8. Automate Social Media Posts with Twitter API

Post tweets programmatically using tweepy.

Code Example

import tweepy

# Twitter API credentials
consumer_key = "your_consumer_key"
consumer_secret = "your_consumer_secret"
access_token = "your_access_token"
access_token_secret = "your_access_token_secret"

# Authenticate
auth = tweepy.OAuth1UserHandler(consumer_key, consumer_secret, access_token, access_token_secret)
api = tweepy.API(auth)

# Post tweet
api.update_status("Automated tweet from Python! #Automation")
Enter fullscreen mode Exit fullscreen mode

🔐 Security Note: Store credentials in a .env file and load them with python-dotenv.


9. Automate System Backups with shutil

Backup files or folders to external drives or cloud storage.

Example: Copy Files to Backup Folder

import shutil
import os

source = "path/to/important/files"
backup = "path/to/backup/folder"
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")

# Create timestamped backup
backup_folder = os.path.join(backup, timestamp)
os.makedirs(backup_folder)
shutil.copytree(source, backup_folder)
Enter fullscreen mode Exit fullscreen mode

10. Extract Text from PDFs with PyPDF2

Automate text extraction from PDFs for data analysis or archiving.

Code Example

import PyPDF2

pdf_file = "document.pdf"
text = ""

with open(pdf_file, "rb") as file:
    reader = PyPDF2.PdfReader(file)
    for page in reader.pages:
        text += page.extract_text()

print(text)
Enter fullscreen mode Exit fullscreen mode

11. Automate API Requests with requests

Fetch and process data from REST APIs efficiently.

Example: Get Weather Data

import requests

api_key = "your_api_key"
city = "London"
url = f"https://api.weatherapi.com/v1/current.json?key={api_key}&q={city}"

response = requests.get(url)
if response.status_code == 200:
    data = response.json()
    print(f"Weather in {city}: {data['current']['temp_c']}°C")
Enter fullscreen mode Exit fullscreen mode

12. Automate Screen Captures with pyautogui

Capture screenshots or automate GUI interactions.

Example: Take a Screenshot

import pyautogui

screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")
Enter fullscreen mode Exit fullscreen mode

Conclusion

Python automation is a powerful way to eliminate repetitive tasks and focus on higher-value work. From file management to web scraping and API interactions, the 12 scripts covered in this tutorial demonstrate how Python can transform your workflow. Each example is designed to be practical, scalable, and easy to adapt to your needs.

By automating even a few tasks, you’ll save hours every week—time you can invest in learning, creating, or relaxing. The key is to start small, test thoroughly, and gradually expand your automation toolkit.


Next Steps

Now that you’ve seen how Python can automate your workflow, here’s how to take it further:

  1. Explore Advanced Libraries: Dive into Playwright for web automation, Flask for APIs, or Docker for deployment.
  2. Build a Personal Automation Toolkit: Combine scripts into a single application with a GUI or CLI.
  3. Contribute to Open Source: Share your scripts with the community or improve existing automation tools.
  4. Learn AI Integration: Use Python to automate tasks with machine learning, like data classification or natural language processing.

Remember: Automation is not about replacing human effort—it’s about enhancing it. Happy coding!


Need professional web scraping or data extraction? Visit N3X1S INTELLIGENCE on Fiverr for fast, reliable data delivery.

Top comments (0)