5 Overlooked Python Automation Tricks: Using Lesser-Known Standard Library Modules to Eliminate Daily Desktop Drudgery

Key Takeaways
- Python's built-in standard library is a powerful and often overlooked resource for automating daily desktop tasks without extra installations.
- Modules like
pathlibandshutildramatically simplify file and folder management, making your automation scripts cleaner, safer, and cross-platform.- You can orchestrate external command-line programs with
subprocessand perform rapid data analysis on text files usingcsvandcollections.Counter.
I once spent an entire Friday afternoon manually renaming over 200 screenshots for a client presentation. I’d take a screenshot, find it in the folder, press F2, type client-name_feature-x_step-01.png, and repeat. By the end of the day, my brain was mush and my respect for my own time was at an all-time low.
That was the moment I realized a painful truth: as tech enthusiasts, we often reach for the shiniest new pip install package to solve our problems. We completely ignore the powerhouse toolset that comes baked right into Python. We think more libraries equal more power, but that's a myth.
Today, I’m pulling back the curtain on five of these overlooked standard library modules that can eliminate your daily desktop drudgery. No installations, no dependencies—just pure, unadulterated automation.
Trick 1: Tame Your File System Chaos with pathlib
I used to wrestle with file paths like everyone else. The endless os.path.join() calls and the mental gymnastics of slashes were a mess. It felt brittle and, frankly, ugly.
Then I found pathlib. It’s an object-oriented approach that treats file system paths not as dumb strings, but as smart objects. This is a game-changer. It makes your code cleaner, more readable, and instantly cross-platform.
Here’s a script that would have saved my Friday afternoon. It finds all screenshots in a folder and renames them based on their creation date.
Code Example: Bulk-rename screenshots by date
from pathlib import Path
from datetime import datetime
# Define the path to your screenshots folder
screenshots_dir = Path.home() / "Pictures" / "Screenshots"
# Loop through all .png files starting with "Screenshot"
for i, path in enumerate(sorted(screenshots_dir.glob("Screenshot*.png")), start=1):
# Get the file's modification time
created_time = datetime.fromtimestamp(path.stat().st_mtime)
# Create a new, clean name
new_name = created_time.strftime(f"%Y-%m-%d_%H-%M-%S_{i:03}.png")
# Rename the file
path.rename(path.with_name(new_name))
print("Screenshot renaming complete!")
Trick 2: Ditch the Drag-and-Drop with shutil
How many times have you manually backed up a project folder? You drag ProjectX to your external drive, wait for it to copy, then maybe compress the original. It’s a mindless, repetitive task that’s begging to be automated.
The shutil (Shell Utilities) module is your answer. It provides high-level operations for things you’d normally do in your file explorer. Need to copy an entire directory tree? One command: shutil.copytree(). Need to create a zip archive? One command: shutil.make_archive().
Code Example: Daily backup & zip of a project folder
import shutil
from pathlib import Path
from datetime import datetime
source_project = Path.home() / "Documents" / "MyImportantProject"
backup_location = Path.home() / "Backups"
# Create the main backup folder if it doesn't exist
backup_location.mkdir(exist_ok=True)
# Create a dated subfolder for today's backup
date_stamp = datetime.now().strftime("%Y-%m-%d")
target_backup_dir = backup_location / f"ProjectBackup_{date_stamp}"
# Copy the entire source project to the new backup location
shutil.copytree(source_project, target_backup_dir, dirs_exist_ok=True)
# Now, create a zip file of that new backup for easy storage
shutil.make_archive(str(target_backup_dir), 'zip', target_backup_dir)
print(f"Successfully backed up and zipped project to {target_backup_dir}.zip")
Trick 3: Your Personal Python Cron Job with sched
Sometimes you just need a script to do something periodically, like cleaning a temp folder every hour. You could set up a full-blown system cron job, but that often feels like overkill.
Enter sched. It's a dead-simple event scheduler that lets you run functions at specific times or after certain delays, all within your Python script. It's the perfect "fire-and-forget" tool for lightweight, recurring tasks.
Code Example: Clean a temp folder every hour
import sched
import time
from pathlib import Path
# Initialize the scheduler
scheduler = sched.scheduler(time.time, time.sleep)
SECONDS_IN_HOUR = 3600
def cleanup_old_files():
print(f"Running cleanup at {time.ctime()}...")
temp_dir = Path.home() / "Downloads" # Or any temp folder
one_week_ago = time.time() - 7 * 24 * 3600
for item in temp_dir.glob('*'):
if item.is_file() and item.stat().st_mtime < one_week_ago:
print(f"Deleting old file: {item.name}")
item.unlink() # Deletes the file
# Schedule the next run in one hour
scheduler.enter(SECONDS_IN_HOUR, 1, cleanup_old_files)
# Schedule the first run immediately and start the scheduler
print("Starting hourly cleanup scheduler...")
scheduler.enter(0, 1, cleanup_old_files)
scheduler.run()
Trick 4: Command Your Entire Desktop with subprocess
Python is the ultimate glue language. Many of us already rely on powerful command-line tools like ffmpeg, git, or pandoc. The drudgery comes from the manual multi-step process of running commands and managing their output.
The subprocess module lets your Python script take control. You can spawn any external program, feed it input, and capture its output. This allows you to chain together tools that were never designed to work with each other, creating incredibly powerful workflows.
Code Example: Batch convert .docx to PDF using LibreOffice's CLI
import subprocess
from pathlib import Path
# This requires LibreOffice to be installed and in your system's PATH
reports_folder = Path.home() / "Documents" / "MonthlyReports"
for doc_file in reports_folder.glob("*.docx"):
print(f"Converting {doc_file.name} to PDF...")
subprocess.run([
"soffice", # The LibreOffice command
"--headless", # Run without a GUI
"--convert-to", "pdf",
"--outdir", str(reports_folder), # Save PDF in the same folder
str(doc_file)
], check=True)
print("All DOCX files have been converted to PDF.")
Trick 5: Instant Insights from Your Data Dumps with csv and Counter
You just exported a list of 5,000 contacts and your boss asks, "What are the top 5 most common email domains?" The old me would have opened it in Excel and created a pivot table. It works, but it’s slow and manual.
The modern Pythonista’s approach is surgical. Combine the built-in csv module with collections.Counter, a ridiculously efficient tool for counting hashable objects. In just a few lines of code, you can get frequency counts from massive text files without ever leaving your terminal.
Code Example: Find the most common email domains from an export
import csv
from collections import Counter
from pathlib import Path
contacts_file = Path.home() / "Downloads" / "contacts_export.csv"
# A Counter to store the frequency of each domain
domain_counts = Counter()
with contacts_file.open(newline="", encoding="utf-8") as f:
# Assuming the CSV has a header row
reader = csv.DictReader(f)
for row in reader:
# Safely get the email, defaulting to an empty string
email = row.get("Email Address", "")
if "@" in email:
domain = email.split("@")[-1].lower()
domain_counts[domain] += 1
# Print the top 10 most common domains
print("Top 10 Most Common Email Domains:")
for domain, count in domain_counts.most_common(10):
print(f"- {domain}: {count} contacts")
Conclusion: You've Had a Swiss Army Knife All Along
There you have it. Five workhorses from the Python standard library that can automate away some of the most common, soul-crushing desktop tasks:
pathlibfor clean, modern file and folder manipulation.shutilfor high-level operations like copying and archiving entire directories.schedfor simple, time-based task scheduling within your script.subprocessfor orchestrating other command-line tools you already use.csvandcollections.Counterfor lightning-fast data summaries.
Once you’ve mastered these standard library powerhouses, you might be ready to explore more specialized third-party tools. But for now, I challenge you: find one repetitive task you do on your computer every single day.
Try to automate it this week using only the modules I’ve shown you here. Stop the digital drudgery. You already have the tools.
Recommended Watch
π¬ Thoughts? Share in the comments below!
Comments
Post a Comment