10 Practical Python Automation Scripts

paz 12/12/2025

Repetitive tasks are always time-consuming and boring. Think about wanting to crop 100 photos one by one, or tasks like fetching APIs, correcting spelling and grammar—all of these tasks take a lot of time. Why not automate them? In today’s article, I will share with you 10 Python automation scripts.

So, please save this article to your collection list for future reference. In the IT industry, a programmer’s learning never ends…

Now, let’s get started.

#01 Image Optimizer

Using this fantastic automation script can help improve image processing. You can edit images just like in Photoshop.

This script uses the popular Pillow module.

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”)

#02 Video Optimizer

By using the following automation script, you can not only use Python to optimize videos but also images. This script uses the Moviepy module, which allows you to trim, add audio, set video speed, add VFX, and more.

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”)

#03 PDF to Images

This small automation script conveniently takes entire PDF pages and converts them into images. The script uses the popular PyMuPDF module, known for its PDF text extraction.

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”)

#04 Fetch API Data

Need to fetch API data from a database or send API requests to a server? Then this automation script is a handy tool for you. Using the Urllib3 module, it allows you to fetch and post API requests.

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)

#05 Battery Notifier

This handy script allows you to set the battery percentage at which you want to be notified. The script uses Pyler for notifications and Psutil to get the current battery percentage.

Battery Notifier

pip install 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)

#06 Grammar Fixer

Tired of proofreading your long articles or texts? Then, you can try this automation script, which will scan your text and correct grammatical errors. This fantastic script uses the Happytransformer module, a machine learning module trained to fix grammatical errors in text.

Grammar Fixer

pip install happytransformer

from happytransformer import HappyTextToText as HappyTTT
from happytransformer import TTSettings
def Grammar_Fixer(Text):
Grammar = HappyTTT(“T5″,”prithivida/grammar_error_correcter_v1”)
config = TTSettings(do_sample=True, top_k=10, max_length=100)
corrected = Grammar.generate_text(Text, args=config)
print(“Corrected Text: “, corrected.text)
Text = “This is smple tet we how know this”
Grammar_Fixer(Text)

#07 Spell Fixer

This fantastic script will help you correct spelling mistakes in your text words. Below, you can find the script that shows how to fix single words or multiple words in a sentence.

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”)

#08 Internet Downloader

You might use download software to download photos or videos from the Internet, but now you can create your own downloader using the Python IDM module.

Python Downloader

pip install internetdownloadmanager

import internetdownloadmanager as idm
def Downloader(url, output):
pydownloader = idm.Downloader(worker=20,
part_size=1024102410,
resumable=True,)

textCopy Codepydownloader .download(url, output)

Downloader(“Link url”, “image.jpg”)
Downloader(“Link url”, “video.mp4”)

#09 Get World News

Use this automation script to keep yourself updated with daily world news. You can fetch news in any language from any country. This API allows you to get 50 news articles for free daily.

World News Fetcher

pip install requests

import requests
ApiKey = “YOUR_API_KEY”
url = “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

This automation script will help you create your GUI application using the PySide2 GUI module. Below, you can find every method needed to start developing decent modern applications.

PySide 2

pip install PySide2

from PySide6.QtWidgets import *
from PySide6.QtGui import *
import sys
app = QApplication(sys.argv)
window = QWidget()

Resize the Window

window.resize(500, 500)

Set the Window Title

window.setWindowTitle(“PySide2 Window”)

Add Buttons

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

Add Label Text

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

Add Input Box

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

Add Radio Buttons

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

Add Checkbox

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

Add Slider

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

Add Progress Bar

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

Add Image

image = QLabel(window)
image.setPixmap(QPixmap(“image.png”))

Add Message Box

msg = QMessageBox(window)
msg.setText(“Message Box”)
msg.setStandardButtons(QMessageBox.Ok | QMessageBox.Cancel)
window.show()
sys.exit(app.exec())