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.
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())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!
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
