Three months ago, I had one of those days.
Twelve tabs open. Two half-written scripts. A messy downloads folder screaming for attention. And a sticky note that said “automate this later.”
I’ve been writing Python for over four years. Built automation tools for startups. Designed internal systems. Helped engineers optimize pipelines. And yet, somehow, I was still manually renaming files.
That annoyed me more than it should have.
A beginner-friendly Python guide made for non-programmers. Start learning Python the easy way!
So I did what I always do when I feel friction: I wrote tiny scripts. Not massive frameworks. Not SaaS products. Just sharp, focused tools.
These eight scripts are simple. But together? They made me feel like I had a personal assistant living inside my terminal.
And no, these aren’t the usual suspects.
Let’s get into it.
1. Auto-Clean My Downloads Folder
The Script That Saved My Sanity
My Downloads folder used to look like digital chaos. PDFs, PNGs, ZIP files all mixed like a bad smoothie.
So I wrote a script that categorizes files by extension using os and shutil.
import os
import shutil
source = "Downloads"
for file in os.listdir(source):
ext = file.split('.')[-1]
folder = os.path.join(source, ext.upper())
os.makedirs(folder, exist_ok=True)
shutil.move(os.path.join(source, file), os.path.join(folder, file))
What it does:
- Reads every file in Downloads
- Detects extension
- Creates a folder named after the extension
- Moves the file automatically
It runs in seconds. I run it once a week.
Productivity boost: massive. Mental clarity: priceless.
2. Bulk Image Resizer
Because Manual Editing Is a Time Trap
I once had to resize 140 images for a dashboard. I almost opened Photoshop. Then I remembered: I’m a programmer.
Enter Pillow.
from PIL import Image
import os
for file in os.listdir("images"):
img = Image.open(f"images/{file}")
img = img.resize((800, 800))
img.save(f"resized/{file}")
Explanation:
- Opens each image
- Resizes to fixed dimensions
- Saves to a new folder
It turned a 45-minute chore into a 10-second process.
Automation is not about complexity. It’s about refusing repetition.
3. Daily Task Reminder in Terminal
Low-Tech. High Impact.
I don’t use fancy productivity apps. I prefer frictionless systems.
This script reads tasks from a text file and prints them every morning.
with open("tasks.txt") as f:
tasks = f.readlines()
print("Today's Focus:\n")
for task in tasks:
print("-", task.strip())
Every time I open my terminal, I see what matters.
Pro tip: The best productivity system is the one you’ll actually use.
4. Convert CSV to JSON Instantly
Because APIs Speak JSON
I work with APIs constantly. Sometimes clients send CSV. That mismatch used to slow me down.
Now I just run this:
import csv
import json
with open("data.csv") as f:
reader = csv.DictReader(f)
rows = list(reader)
with open("data.json", "w") as f:
json.dump(rows, f, indent=2)
Explanation:
- Reads structured CSV
- Converts each row into a dictionary
- Dumps structured JSON
Zero friction between formats.
5. Automated Email Sender
Follow-Ups Without Forgetting
I used to forget follow-ups. Now I let Python remember.
Using smtplib:
import smtplib
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("your_email", "password")
message = "Subject: Follow Up\n\nJust checking in."
server.sendmail("your_email", "client_email", message)
server.quit()
This script:
- Connects securely
- Logs in
- Sends a structured email
Of course, use app passwords. Never hardcode real credentials.
This one paid for itself in closed deals.
6. System Resource Monitor
Know When Your Machine Is Dying
Heavy automation tasks can silently kill performance.
psutil gives visibility.
import psutil
cpu = psutil.cpu_percent()
memory = psutil.virtual_memory().percent
print(f"CPU: {cpu}%")
print(f"Memory: {memory}%")
Now I know exactly when my scripts are pushing limits.
Experts don’t guess. They measure.
7. Auto-Backup Important Files
Because Losing Work Is Painful
I once lost a project folder. Never again.
import shutil
import datetime
today = datetime.date.today()
shutil.copytree("project", f"backup/project_{today}")
Explanation:
- Creates date-based backups
- Copies the entire directory tree
It runs before major refactors.
Automation isn’t just about speed. It’s about safety.
8. Word Frequency Analyzer
Quick Insight from Raw Text
Sometimes I want instant insight from large text data.
collections. Counter is criminally underrated.
from collections import Counter
text = open("notes.txt").read().lower().split()
counts = Counter(text)
print(counts.most_common(5))
In seconds, I see dominant themes.
Small script. Big clarity.
What Most Developers Miss
None of these scripts is revolutionary.
That’s the point.
They eliminate friction. And friction compounds.
A five-minute saving per day becomes 30 hours per year. That’s almost a full workweek reclaimed.
I didn’t feel more productive because I worked harder. I felt productive because my environment started working for me.
Here’s the bold opinion:
If you’re not automating small annoyances, you’re not thinking like a senior developer.
Big systems are impressive. Small systems are transformative.
Automation isn’t about AI hype. It’s about leverage.
And leverage is how you win long-term.
***Want a pack of prompts that work for you and save hours? click h*er**e
Want more posts like this? Drop a “YES” in the comment, and I’ll share more coding tricks like this one.
Want to support me? Give 50 claps on this post and follow me.
Thanks for reading!
Comments
Loading comments…