Fundamentals 12 min read

10 Useful Python Automation Scripts for Everyday Tasks

This article presents ten practical Python automation scripts covering image and video processing, PDF conversion, API interaction, system notifications, grammar and spell correction, downloading, news fetching, and GUI creation, each accompanied by concise code examples for quick implementation.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
10 Useful Python Automation Scripts for Everyday Tasks

Automation can eliminate repetitive, time‑consuming tasks such as cropping hundreds of photos, trimming videos, converting PDFs, fetching API data, or correcting grammar. This article shares ten ready‑to‑run Python scripts that address these common needs.

1. Image Optimizer

This script uses the Pillow library to crop, resize, flip, rotate, compress, blur, sharpen, adjust brightness/contrast, apply filters, and save images.

# Image Optimizing
# pip install Pillow
import PIL
# Cropping
im = PIL.Image.open("Image1.jpg")
im = im.crop((34, 23, 100, 100))
# Resizing
im = PIL.Image.open("Image1.jpg")
im = im.resize((50, 50))
# Flipping
im = PIL.Image.open("Image1.jpg")
im = im.transpose(PIL.Image.FLIP_LEFT_RIGHT)
# Rotating
im = PIL.Image.open("Image1.jpg")
im = im.rotate(360)
# Compressing
im = PIL.Image.open("Image1.jpg")
im.save("Image1.jpg", optimize=True, quality=90)
# Blurring
im = PIL.Image.open("Image1.jpg")
im = im.filter(PIL.ImageFilter.BLUR)
# Sharpening
im = PIL.Image.open("Image1.jpg")
im = im.filter(PIL.ImageFilter.SHARPEN)
# Set Brightness
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageEnhance.Brightness(im)
im = im.enhance(1.5)
# Set Contrast
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageEnhance.Contrast(im)
im = im.enhance(1.5)
# Adding Filters
im = PIL.Image.open("Image1.jpg")
im = PIL.ImageOps.grayscale(im)
im = PIL.ImageOps.invert(im)
im = PIL.ImageOps.posterize(im, 4)
# Saving
im.save("Image1.jpg")

2. Video Optimizer

Using the moviepy library, this script can load videos, trim clips, concatenate them, speed up playback, add audio, reverse, merge, apply visual effects, insert images, and finally export the result.

# Video Optimizer
# pip install moviepy
import moviepy.editor as pyedit
# Load the Video
video = pyedit.VideoFileClip("vid.mp4")
# Trimming
vid1 = video.subclip(0, 10)
vid2 = video.subclip(20, 40)
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# Speed up the video
final_vid = final_vid.speedx(2)
# Adding Audio to the video
aud = pyedit.AudioFileClip("bg.mp3")
final_vid = final_vid.set_audio(aud)
# Reverse the Video
final_vid = final_vid.fx(pyedit.vfx.time_mirror)
# Merge two videos
vid1 = pyedit.VideoFileClip("vid1.mp4")
vid2 = pyedit.VideoFileClip("vid2.mp4")
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# Add VFX to Video
vid1 = final_vid.fx(pyedit.vfx.mirror_x)
vid2 = final_vid.fx(pyedit.vfx.invert_colors)
final_vid = pyedit.concatenate_videoclips([vid1, vid2])
# Add Images to Video
img1 = pyedit.ImageClip("img1.jpg")
img2 = pyedit.ImageClip("img2.jpg")
final_vid = pyedit.concatenate_videoclips([img1, img2])
# Save the video
final_vid.write_videofile("final.mp4")

3. PDF to Images

This script leverages PyMuPDF (imported as fitz ) to open a PDF file, iterate over its pages, render each page as a PNG image, and save the images with sequential filenames.

# PDF to Images
# pip install PyMuPDF
import fitz

def pdf_to_images(pdf_file):
    doc = fitz.open(pdf_file)
    for p in doc:
        pix = p.get_pixmap()
        output = f"page{p.number}.png"
        pix.writePNG(output)

pdf_to_images("test.pdf")

4. API Data Fetcher

Using urllib3 , this example demonstrates how to perform GET and POST requests, print the HTTP status, and display the response data.

# pip install urllib3
import urllib3
# Fetch API data
url = "https://api.github.com/users/psf/repos"
http = urllib3.PoolManager()
response = http.request('GET', url)
print(response.status)
print(response.data)
# Post API data
url = "https://httpbin.org/post"
http = urllib3.PoolManager()
response = http.request('POST', url, fields={'hello': 'world'})
print(response.status)
print(response.data)

5. Battery Notifier

With psutil to read battery level and plyer for desktop notifications, this loop alerts the user when the battery drops below a threshold.

# Battery Notifier
# pip instal plyer
from plyer import notification
import psutil
from time import sleep

while True:
    battery = psutil.sensors_battery()
    life = battery.percent
    if life < 50:
        notification.notify(
            title="Battery Low",
            message="Please connect to power source",
            timeout=10
        )
    sleep(60)

6. Grammar Fixer

Utilizing the happytransformer library with a pre‑trained T5 model, this script defines a function that corrects grammatical errors in a given text.

# Grammar Fixer
# pip install happytransformer
from happytransformer import HappyTextToText as HappyTTT
from happytransformer import TTSettings

def Grammer_Fixer(Text):
    Grammer = HappyTTT("T5", "prithivida/grammar_error_correcter_v1")
    config = TTSettings(do_sample=True, top_k=10, max_length=100)
    corrected = Grammer.generate_text(Text, args=config)
    print("Corrected Text: ", corrected.text)

Text = "This is smple tet we how know this"
Grammer_Fixer(Text)

7. Spell Fixer

Based on textblob , this script provides functions to correct spelling in whole paragraphs or individual words.

# Spell Fixer
# pip install textblob
from textblob import *

# Fixing Paragraph Spells
def fix_paragraph_words(paragraph):
    sentence = TextBlob(paragraph)
    correction = sentence.correct()
    print(correction)

# Fixing Words Spells
def fix_word_spell(word):
    word = Word(word)
    correction = word.correct()
    print(correction)

fix_paragraph_words("This is sammple tet!!")
fix_word_spell("maangoo")

8. Internet Downloader

By installing the internetdownloadmanager package, this function creates a multi‑threaded downloader capable of resuming and handling large files.

# Python Downloader
# pip install internetdownloadmanager
import internetdownloadmanager as idm

def Downloader(url, output):
    pydownloader = idm.Downloader(
        worker=20,
        part_size=1024*1024*10,
        resumable=True,
    )
    pydownloader.download(url, output)

Downloader("Link url", "image.jpg")
Downloader("Link url", "video.mp4")

9. World News Fetcher

This script uses the requests library to call a public news API (replace YOUR_API_KEY ) and prints the returned JSON.

# World News Fetcher
# pip install requests
import requests
ApiKey = "YOUR_API_KEY"
url = f"https://api.worldnewsapi.com/search-news?text=hurricane&api-key={ApiKey}"
headers = {'Accept': 'application/json'}
response = requests.get(url, headers=headers)
print("News: ", response.json())

10. PySide2 GUI

Demonstrating a basic graphical user interface built with PySide6 , the example creates a window, adds buttons, labels, input fields, radio buttons, checkboxes, sliders, a progress bar, an image, and a message box.

# PySide 2
# pip install PySide2
from PySide6.QtWidgets import *
from PySide6.QtGui import *
import sys

app = QApplication(sys.argv)
window = QWidget()
window.resize(500, 500)
window.setWindowTitle("PySide2 Window")

button = QPushButton("Click Me", window)
button.move(200, 200)

label = QLabel("Hello Medium", window)
label.move(200, 150)

input_box = QLineEdit(window)
input_box.move(200, 250)
print(input_box.text())

radio_button = QRadioButton("Radio Button", window)
radio_button.move(200, 300)

checkbox = QCheckBox("Checkbox", window)
checkbox.move(200, 350)

slider = QSlider(window)
slider.move(200, 400)

progress_bar = QProgressBar(window)
progress_bar.move(200, 450)

image = QLabel(window)
image.setPixmap(QPixmap("image.png"))

msg = QMessageBox(window)
msg.setText("Message Box")
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)

window.show()
sys.exit(app.exec())

These ten scripts provide a quick‑start toolkit for automating routine tasks, improving productivity, and serving as building blocks for larger Python projects.

GUIPythonautomationAPIscriptingImageProcessingVideoProcessing
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.