Photo by Florian Olivo on Unsplash
Python Automation Scripts to Save Hours Every Week in 2026
Python is the most popular automation language in the world for good reason — it is readable, powerful, and has libraries for automating almost anything. Whether you are a developer looking to eliminate repetitive tasks, a business owner wanting to automate workflows, or a beginner taking your first steps into programming, Python automation delivers immediate, practical value. This guide covers the most useful automation scripts you can start using immediately in 2026, complete with ready-to-use code.
Photo by Florian Olivo on Unsplash
Setting Up Python for Automation
Before running any automation scripts, ensure Python 3.8 or higher is installed from python.org. Install pip packages using pip install package-name in your terminal or command prompt. For Windows users, running python --version in Command Prompt confirms your installation is working correctly.
1. Automatic File Organiser
This script monitors a folder — perfect for your Downloads directory — and automatically sorts files into subfolders by type.
import os
import shutil
from pathlib import Path
def organise_folder(folder_path):
folder = Path(folder_path)
categories = {
'Images': ['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg'],
'Documents': ['.pdf', '.doc', '.docx', '.txt', '.xlsx', '.csv'],
'Videos': ['.mp4', '.mov', '.avi', '.mkv'],
'Audio': ['.mp3', '.wav', '.flac', '.aac'],
'Archives': ['.zip', '.rar', '.tar', '.gz'],
'Code': ['.py', '.js', '.html', '.css', '.json']
}
for file in folder.iterdir():
if file.is_file():
ext = file.suffix.lower()
for category, extensions in categories.items():
if ext in extensions:
dest = folder / category
dest.mkdir(exist_ok=True)
shutil.move(str(file), str(dest / file.name))
print(f"Moved {file.name} to {category}")
break
organise_folder(r"C:\Users\YourName\Downloads")
Time saved: 15-30 minutes per week for anyone with a cluttered downloads folder. Run it on a schedule using Windows Task Scheduler for fully automatic organisation.
2. Bulk File Renamer
Rename hundreds of files systematically in seconds — adding prefixes, replacing text, adding sequential numbers, or changing cases.
import os
from pathlib import Path
def bulk_rename(folder_path, old_text, new_text):
folder = Path(folder_path)
renamed = 0
for file in folder.iterdir():
if file.is_file() and old_text in file.name:
new_name = file.name.replace(old_text, new_text)
file.rename(folder / new_name)
print(f"Renamed: {file.name} → {new_name}")
renamed += 1
print(f"\nTotal files renamed: {renamed}")
# Example: replace "photo" with "image" in all filenames
bulk_rename(r"C:\Users\YourName\Photos", "photo", "image")
Photo by Franck V. on Unsplash
3. Automated Email Sender
Send personalised bulk emails from a CSV list — useful for outreach, newsletters, or client follow-ups. Requires a Gmail account with App Passwords enabled.
import smtplib
import csv
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_bulk_emails(csv_file, sender_email, app_password):
with open(csv_file, 'r') as f:
reader = csv.DictReader(f)
contacts = list(reader)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, app_password)
for contact in contacts:
msg = MIMEMultipart()
msg['From'] = sender_email
msg['To'] = contact['email']
msg['Subject'] = f"Hello {contact['name']}"
body = f"""Hi {contact['name']},
Thank you for your interest. This is a personalised message for you.
Best regards,
Your Name"""
msg.attach(MIMEText(body, 'plain'))
server.send_message(msg)
print(f"Email sent to {contact['email']}")
server.quit()
print("All emails sent successfully")
CSV format required: name,email with one contact per row. Always test with your own email first before sending bulk campaigns. This pairs well with free email marketing tools for small businesses for a complete email automation workflow.
4. Website Change Monitor
Monitor any webpage for changes and receive an alert when content updates — useful for tracking competitor pricing, job listings, or product availability.
import requests
import hashlib
import time
def monitor_website(url, check_interval=3600):
print(f"Monitoring: {url}")
print(f"Checking every {check_interval} seconds\n")
response = requests.get(url)
last_hash = hashlib.md5(response.content).hexdigest()
while True:
time.sleep(check_interval)
try:
response = requests.get(url)
current_hash = hashlib.md5(response.content).hexdigest()
if current_hash != last_hash:
print(f"CHANGE DETECTED on {url}")
print(f"Time: {time.strftime('%Y-%m-%d %H:%M:%S')}")
last_hash = current_hash
else:
print(f"No change — {time.strftime('%H:%M:%S')}")
except Exception as e:
print(f"Error checking site: {e}")
# Install requests first: pip install requests
monitor_website("https://example.com/pricing", check_interval=1800)
Photo by Steve A Johnson on Unsplash
5. PDF Merger
Combine multiple PDF files into one document — essential for compiling reports, portfolios, or document packages.
from pypdf import PdfWriter
import os
def merge_pdfs(pdf_folder, output_file):
writer = PdfWriter()
pdf_files = sorted([f for f in os.listdir(pdf_folder) if f.endswith('.pdf')])
for pdf_file in pdf_files:
filepath = os.path.join(pdf_folder, pdf_file)
writer.append(filepath)
print(f"Added: {pdf_file}")
with open(output_file, 'wb') as output:
writer.write(output)
print(f"\nMerged {len(pdf_files)} files into {output_file}")
# Install first: pip install pypdf
merge_pdfs(r"C:\Users\YourName\PDFs", "merged_output.pdf")
Scheduling Scripts to Run Automatically
Scripts are most powerful when they run without manual triggering. On Windows, use Task Scheduler to run Python scripts at set times. On Mac and Linux, use cron jobs. The basic cron syntax to run a script every day at 9am is: 0 9 * * * python3 /path/to/script.py.
Frequently Asked Questions
Do I need programming experience to use these scripts?
No experience is required to run these scripts — copy them, change the file paths to match your computer, install any required packages with pip, and run them. Understanding what the code does helps you customise it, but is not required to use it immediately.
Which Python packages are needed for automation?
The most useful automation packages are: requests (web requests), beautifulsoup4 (web scraping), selenium (browser automation), pandas (data processing), openpyxl (Excel automation), schedule (task scheduling), and smtplib (email — built into Python). Install any with pip install package-name.
Is it legal to automate tasks on websites?
Automating your own systems is always fine. For external websites, check the robots.txt file and terms of service. Web scraping public data for personal use is generally acceptable, but scraping behind logins or at high volume may violate terms of service. Always automate responsibly.
How do I learn Python automation from scratch?
The most effective path is learning by doing — take a repetitive task you do regularly, find a Python script that does something similar, adapt it to your needs, and run it. Python's Automate the Boring Stuff with Python (free online) is the best resource specifically for practical automation.
Conclusion
Python automation scripts are among the highest-leverage productivity investments you can make in 2026. A script that takes two hours to write and test can save fifteen minutes per day — that is 90 hours saved over a year from a single script. Start with the file organiser or bulk renamer, which require no external packages and deliver immediate visible results. Build from there as your confidence grows. Find more Python automation guides and beginner-friendly coding tutorials at Glint SoftTechs.
Comments