Fundamentals 11 min read

10 Powerful Python Automation Scripts to Boost Your Productivity

This article presents ten practical Python automation scripts—including image and video optimizers, PDF conversion, API handling, battery alerts, grammar and spell checkers, a downloader, news fetcher, and a PySide2 GUI—each with clear explanations and ready-to-use code examples.

Linux Cloud Computing Practice
Linux Cloud Computing Practice
Linux Cloud Computing Practice
10 Powerful Python Automation Scripts to Boost Your Productivity

Repetitive tasks such as cropping hundreds of photos, fixing spelling, or fetching API data can be tedious, so this article shares ten useful Python automation scripts.

1. Image Optimizer

This script uses the Pillow library to perform image editing operations similar to Photoshop, including cropping, resizing, flipping, rotating, compressing, blurring, sharpening, adjusting brightness and contrast, and applying filters.

# 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

This script leverages the MoviePy library to trim, concatenate, speed up, add audio, reverse, merge videos, apply visual effects, and insert images, then saves the final video.

# 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 uses PyMuPDF to open a PDF file and export each page as a PNG image.

# 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

This script demonstrates how to fetch and post data using the urllib3 library.

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

5. Battery Notifier

This script uses Plyer for notifications and psutil to monitor battery level, alerting the user when it drops below a threshold.

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

6. Grammar Fixer

This script uses the HappyTransformer library (a T5 model) to correct grammatical errors in a given text.

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

def Grammar_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"
Grammar_Fixer(Text)

7. Spell Fixer

This script employs TextBlob to detect and correct spelling mistakes in paragraphs or individual words.

# Spell Fixer
# pip install textblob
from textblob import *

def fix_paragraph_words(paragraph):
    sentence = TextBlob(paragraph)
    correction = sentence.correct()
    print(correction)

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

This script creates a multi-threaded downloader using the internetdownloadmanager module.

# 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 fetches the latest world news using a public API (requires an API key).

# 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 Starter

This script demonstrates building a simple GUI with PySide2, adding widgets such as buttons, labels, input boxes, radio buttons, checkboxes, sliders, progress bars, and message boxes.

# PySide2 GUI
# 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())
GUIautomationImage ProcessingAPIscripting
Linux Cloud Computing Practice
Written by

Linux Cloud Computing Practice

Welcome to Linux Cloud Computing Practice. We offer high-quality articles on Linux, cloud computing, DevOps, networking and related topics. Dive in and start your Linux cloud computing journey!

0 followers
Reader feedback

How this landed with the community

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.