Python - Automation Scripts for Everyday Tasks

Python - Automation Scripts for Everyday Tasks

Automation Scripts for Everyday Tasks in Python

Introduction

Python is one of the most powerful and popular programming languages for automation. Thanks to its simple syntax, rich ecosystem, and vast libraries, it allows users to write scripts to automate tedious and repetitive tasks. This document explores various categories of automation tasks, such as file handling, system operations, web scraping, email automation, task scheduling, and data parsing. We'll demonstrate how Python simplifies these everyday problems with working code examples.

Why Use Python for Automation?

Key Benefits

  • Easy to learn and write
  • Rich standard and third-party libraries
  • Cross-platform support
  • Powerful scripting and shell integration
  • Strong community support

Setting Up Your Environment

# Install pip packages
pip install requests
pip install beautifulsoup4
pip install schedule
pip install openpyxl

File Management Automation

Renaming Files in Bulk

import os

folder = 'downloads'
for index, filename in enumerate(os.listdir(folder)):
    if filename.endswith('.txt'):
        new_name = f"document_{index}.txt"
        os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))

Organizing Files by Extension

import os
import shutil

directory = 'downloads'

for file in os.listdir(directory):
    if file.endswith('.jpg'):
        shutil.move(os.path.join(directory, file), os.path.join(directory, 'images', file))
    elif file.endswith('.pdf'):
        shutil.move(os.path.join(directory, file), os.path.join(directory, 'documents', file))

System Automation

Automating Shutdown or Restart

import os
import platform

if platform.system() == "Windows":
    os.system("shutdown /s /t 60")  # Shutdown after 60 seconds
elif platform.system() == "Linux":
    os.system("shutdown -h +1")

Creating Backup Zip Files

import zipfile
import os

def backup_folder(folder):
    with zipfile.ZipFile('backup.zip', 'w') as zipf:
        for foldername, subfolders, filenames in os.walk(folder):
            for filename in filenames:
                zipf.write(os.path.join(foldername, filename),
                           os.path.relpath(os.path.join(foldername, filename), folder))

backup_folder('my_documents')

Web Scraping Automation

Extracting Headlines from a News Website

import requests
from bs4 import BeautifulSoup

url = "https://news.ycombinator.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

for title in soup.find_all("a", class_="storylink"):
    print(title.text)

Downloading Images from a Webpage

import requests
from bs4 import BeautifulSoup
import os

url = "https://example.com/gallery"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

for img in soup.find_all("img"):
    img_url = img.get("src")
    if img_url:
        img_data = requests.get(img_url).content
        filename = os.path.basename(img_url)
        with open(filename, 'wb') as f:
            f.write(img_data)

Email Automation

Sending Emails Using SMTP

import smtplib
from email.mime.text import MIMEText

sender = "your_email@example.com"
receiver = "receiver@example.com"
subject = "Automated Email"
body = "This email was sent using Python automation."

msg = MIMEText(body)
msg["Subject"] = subject
msg["From"] = sender
msg["To"] = receiver

with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server:
    server.login(sender, "your_password")
    server.sendmail(sender, receiver, msg.as_string())

Reading Emails (IMAP)

import imaplib
import email

mail = imaplib.IMAP4_SSL("imap.gmail.com")
mail.login("your_email@example.com", "your_password")
mail.select("inbox")

status, data = mail.search(None, 'ALL')
mail_ids = data[0].split()

for mail_id in mail_ids[-5:]:
    status, msg_data = mail.fetch(mail_id, "(RFC822)")
    raw_email = msg_data[0][1]
    msg = email.message_from_bytes(raw_email)
    print("Subject:", msg["subject"])

Automating Excel Tasks

Reading an Excel File

from openpyxl import load_workbook

wb = load_workbook("report.xlsx")
sheet = wb.active

for row in sheet.iter_rows(min_row=1, max_row=5):
    for cell in row:
        print(cell.value, end=" ")
    print()

Writing to Excel File

from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = "Summary"

ws["A1"] = "Name"
ws["B1"] = "Score"

ws.append(["Alice", 85])
ws.append(["Bob", 90])

wb.save("scores.xlsx")

Task Scheduling Automation

Using schedule Library

import schedule
import time

def job():
    print("Running scheduled job...")

schedule.every(10).seconds.do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

Daily Report at Specific Time

schedule.every().day.at("10:30").do(job)

Clipboard Automation

Copy and Paste Text

import pyperclip

pyperclip.copy("Hello from Python clipboard!")
text = pyperclip.paste()
print(text)

Automating Keyboard and Mouse

Using pyautogui

import pyautogui

pyautogui.moveTo(100, 100, duration=1)
pyautogui.write("Automating typing...", interval=0.1)
pyautogui.press("enter")

Taking Screenshots

pyautogui.screenshot("screenshot.png")

PDF Automation

Extracting Text from PDFs

import PyPDF2

reader = PyPDF2.PdfReader("document.pdf")
for page in reader.pages:
    print(page.extract_text())

Splitting PDF Files

writer = PyPDF2.PdfWriter()
reader = PyPDF2.PdfReader("document.pdf")

writer.add_page(reader.pages[0])
with open("first_page.pdf", "wb") as f:
    writer.write(f)

Web Automation with Selenium

Launching Browser and Searching

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("https://www.google.com")

search = driver.find_element("name", "q")
search.send_keys("Python automation")
search.send_keys(Keys.RETURN)

Working with APIs

Fetching Data from an API

import requests

response = requests.get("https://api.github.com/users/octocat")
data = response.json()
print(data["name"], data["public_repos"])

Posting Data to an API

payload = {"name": "John", "job": "Developer"}
response = requests.post("https://reqres.in/api/users", json=payload)
print(response.status_code)
print(response.json())

Automating Cleanup Tasks

Deleting Old Files

import os
import time

folder = "logs"
now = time.time()

for file in os.listdir(folder):
    file_path = os.path.join(folder, file)
    if os.stat(file_path).st_mtime < now - 7 * 86400:
        os.remove(file_path)

Archiving Old Files

import shutil

shutil.make_archive("old_logs", 'zip', "logs")

Best Practices for Automation Scripts

Use Logging

import logging

logging.basicConfig(level=logging.INFO)
logging.info("Automation script started.")

Error Handling

try:
    result = 10 / 0
except ZeroDivisionError as e:
    print("Error:", e)

Use Virtual Environments

python -m venv automation_env
source automation_env/bin/activate  # or .\automation_env\Scripts\activate on Windows

Write Modular Code

def read_file(path):
    with open(path, "r") as f:
        return f.read()

def write_file(path, content):
    with open(path, "w") as f:
        f.write(content)

Python excels at automating everyday tasksβ€”from file handling, data scraping, and emailing to scheduling and GUI interactions. Its extensive libraries and readable syntax allow developers and non-programmers alike to save hours of manual labor with just a few lines of code. By leveraging these scripts and best practices, you can enhance productivity, reduce errors, and focus more on creative and analytical tasks.

Whether you're automating office reports, scraping websites, or cleaning up directories, Python provides the tools and flexibility to build reliable and powerful automation pipelines.

Beginner 5 Hours
Python - Automation Scripts for Everyday Tasks

Automation Scripts for Everyday Tasks in Python

Introduction

Python is one of the most powerful and popular programming languages for automation. Thanks to its simple syntax, rich ecosystem, and vast libraries, it allows users to write scripts to automate tedious and repetitive tasks. This document explores various categories of automation tasks, such as file handling, system operations, web scraping, email automation, task scheduling, and data parsing. We'll demonstrate how Python simplifies these everyday problems with working code examples.

Why Use Python for Automation?

Key Benefits

  • Easy to learn and write
  • Rich standard and third-party libraries
  • Cross-platform support
  • Powerful scripting and shell integration
  • Strong community support

Setting Up Your Environment

# Install pip packages pip install requests pip install beautifulsoup4 pip install schedule pip install openpyxl

File Management Automation

Renaming Files in Bulk

import os folder = 'downloads' for index, filename in enumerate(os.listdir(folder)): if filename.endswith('.txt'): new_name = f"document_{index}.txt" os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))

Organizing Files by Extension

import os import shutil directory = 'downloads' for file in os.listdir(directory): if file.endswith('.jpg'): shutil.move(os.path.join(directory, file), os.path.join(directory, 'images', file)) elif file.endswith('.pdf'): shutil.move(os.path.join(directory, file), os.path.join(directory, 'documents', file))

System Automation

Automating Shutdown or Restart

import os import platform if platform.system() == "Windows": os.system("shutdown /s /t 60") # Shutdown after 60 seconds elif platform.system() == "Linux": os.system("shutdown -h +1")

Creating Backup Zip Files

import zipfile import os def backup_folder(folder): with zipfile.ZipFile('backup.zip', 'w') as zipf: for foldername, subfolders, filenames in os.walk(folder): for filename in filenames: zipf.write(os.path.join(foldername, filename), os.path.relpath(os.path.join(foldername, filename), folder)) backup_folder('my_documents')

Web Scraping Automation

Extracting Headlines from a News Website

import requests from bs4 import BeautifulSoup url = "https://news.ycombinator.com" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') for title in soup.find_all("a", class_="storylink"): print(title.text)

Downloading Images from a Webpage

import requests from bs4 import BeautifulSoup import os url = "https://example.com/gallery" response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') for img in soup.find_all("img"): img_url = img.get("src") if img_url: img_data = requests.get(img_url).content filename = os.path.basename(img_url) with open(filename, 'wb') as f: f.write(img_data)

Email Automation

Sending Emails Using SMTP

import smtplib from email.mime.text import MIMEText sender = "your_email@example.com" receiver = "receiver@example.com" subject = "Automated Email" body = "This email was sent using Python automation." msg = MIMEText(body) msg["Subject"] = subject msg["From"] = sender msg["To"] = receiver with smtplib.SMTP_SSL("smtp.gmail.com", 465) as server: server.login(sender, "your_password") server.sendmail(sender, receiver, msg.as_string())

Reading Emails (IMAP)

import imaplib import email mail = imaplib.IMAP4_SSL("imap.gmail.com") mail.login("your_email@example.com", "your_password") mail.select("inbox") status, data = mail.search(None, 'ALL') mail_ids = data[0].split() for mail_id in mail_ids[-5:]: status, msg_data = mail.fetch(mail_id, "(RFC822)") raw_email = msg_data[0][1] msg = email.message_from_bytes(raw_email) print("Subject:", msg["subject"])

Automating Excel Tasks

Reading an Excel File

from openpyxl import load_workbook wb = load_workbook("report.xlsx") sheet = wb.active for row in sheet.iter_rows(min_row=1, max_row=5): for cell in row: print(cell.value, end=" ") print()

Writing to Excel File

from openpyxl import Workbook wb = Workbook() ws = wb.active ws.title = "Summary" ws["A1"] = "Name" ws["B1"] = "Score" ws.append(["Alice", 85]) ws.append(["Bob", 90]) wb.save("scores.xlsx")

Task Scheduling Automation

Using schedule Library

import schedule import time def job(): print("Running scheduled job...") schedule.every(10).seconds.do(job) while True: schedule.run_pending() time.sleep(1)

Daily Report at Specific Time

schedule.every().day.at("10:30").do(job)

Clipboard Automation

Copy and Paste Text

import pyperclip pyperclip.copy("Hello from Python clipboard!") text = pyperclip.paste() print(text)

Automating Keyboard and Mouse

Using pyautogui

import pyautogui pyautogui.moveTo(100, 100, duration=1) pyautogui.write("Automating typing...", interval=0.1) pyautogui.press("enter")

Taking Screenshots

pyautogui.screenshot("screenshot.png")

PDF Automation

Extracting Text from PDFs

import PyPDF2 reader = PyPDF2.PdfReader("document.pdf") for page in reader.pages: print(page.extract_text())

Splitting PDF Files

writer = PyPDF2.PdfWriter() reader = PyPDF2.PdfReader("document.pdf") writer.add_page(reader.pages[0]) with open("first_page.pdf", "wb") as f: writer.write(f)

Web Automation with Selenium

Launching Browser and Searching

from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get("https://www.google.com") search = driver.find_element("name", "q") search.send_keys("Python automation") search.send_keys(Keys.RETURN)

Working with APIs

Fetching Data from an API

import requests response = requests.get("https://api.github.com/users/octocat") data = response.json() print(data["name"], data["public_repos"])

Posting Data to an API

payload = {"name": "John", "job": "Developer"} response = requests.post("https://reqres.in/api/users", json=payload) print(response.status_code) print(response.json())

Automating Cleanup Tasks

Deleting Old Files

import os import time folder = "logs" now = time.time() for file in os.listdir(folder): file_path = os.path.join(folder, file) if os.stat(file_path).st_mtime < now - 7 * 86400: os.remove(file_path)

Archiving Old Files

import shutil shutil.make_archive("old_logs", 'zip', "logs")

Best Practices for Automation Scripts

Use Logging

import logging logging.basicConfig(level=logging.INFO) logging.info("Automation script started.")

Error Handling

try: result = 10 / 0 except ZeroDivisionError as e: print("Error:", e)

Use Virtual Environments

python -m venv automation_env source automation_env/bin/activate # or .\automation_env\Scripts\activate on Windows

Write Modular Code

def read_file(path): with open(path, "r") as f: return f.read() def write_file(path, content): with open(path, "w") as f: f.write(content)

Python excels at automating everyday tasks—from file handling, data scraping, and emailing to scheduling and GUI interactions. Its extensive libraries and readable syntax allow developers and non-programmers alike to save hours of manual labor with just a few lines of code. By leveraging these scripts and best practices, you can enhance productivity, reduce errors, and focus more on creative and analytical tasks.

Whether you're automating office reports, scraping websites, or cleaning up directories, Python provides the tools and flexibility to build reliable and powerful automation pipelines.

Frequently Asked Questions for Python

Python is commonly used for developing websites and software, task automation, data analysis, and data visualisation. Since it's relatively easy to learn, Python has been adopted by many non-programmers, such as accountants and scientists, for a variety of everyday tasks, like organising finances.


Python's syntax is a lot closer to English and so it is easier to read and write, making it the simplest type of code to learn how to write and develop with. The readability of C++ code is weak in comparison and it is known as being a language that is a lot harder to get to grips with.

Learning Curve: Python is generally considered easier to learn for beginners due to its simplicity, while Java is more complex but provides a deeper understanding of how programming works. Performance: Java has a higher performance than Python due to its static typing and optimization by the Java Virtual Machine (JVM).

Python can be considered beginner-friendly, as it is a programming language that prioritizes readability, making it easier to understand and use. Its syntax has similarities with the English language, making it easy for novice programmers to leap into the world of development.

To start coding in Python, you need to install Python and set up your development environment. You can download Python from the official website, use Anaconda Python, or start with DataLab to get started with Python in your browser.

Learning Curve: Python is generally considered easier to learn for beginners due to its simplicity, while Java is more complex but provides a deeper understanding of how programming works.

Python alone isn't going to get you a job unless you are extremely good at it. Not that you shouldn't learn it: it's a great skill to have since python can pretty much do anything and coding it is fast and easy. It's also a great first programming language according to lots of programmers.

The point is that Java is more complicated to learn than Python. It doesn't matter the order. You will have to do some things in Java that you don't in Python. The general programming skills you learn from using either language will transfer to another.


Read on for tips on how to maximize your learning. In general, it takes around two to six months to learn the fundamentals of Python. But you can learn enough to write your first short program in a matter of minutes. Developing mastery of Python's vast array of libraries can take months or years.


6 Top Tips for Learning Python

  • Choose Your Focus. Python is a versatile language with a wide range of applications, from web development and data analysis to machine learning and artificial intelligence.
  • Practice regularly.
  • Work on real projects.
  • Join a community.
  • Don't rush.
  • Keep iterating.

The following is a step-by-step guide for beginners interested in learning Python using Windows.

  • Set up your development environment.
  • Install Python.
  • Install Visual Studio Code.
  • Install Git (optional)
  • Hello World tutorial for some Python basics.
  • Hello World tutorial for using Python with VS Code.

Best YouTube Channels to Learn Python

  • Corey Schafer.
  • sentdex.
  • Real Python.
  • Clever Programmer.
  • CS Dojo (YK)
  • Programming with Mosh.
  • Tech With Tim.
  • Traversy Media.

Python can be written on any computer or device that has a Python interpreter installed, including desktop computers, servers, tablets, and even smartphones. However, a laptop or desktop computer is often the most convenient and efficient option for coding due to its larger screen, keyboard, and mouse.

Write your first Python programStart by writing a simple Python program, such as a classic "Hello, World!" script. This process will help you understand the syntax and structure of Python code.

  • Google's Python Class.
  • Microsoft's Introduction to Python Course.
  • Introduction to Python Programming by Udemy.
  • Learn Python - Full Course for Beginners by freeCodeCamp.
  • Learn Python 3 From Scratch by Educative.
  • Python for Everybody by Coursera.
  • Learn Python 2 by Codecademy.

  • Understand why you're learning Python. Firstly, it's important to figure out your motivations for wanting to learn Python.
  • Get started with the Python basics.
  • Master intermediate Python concepts.
  • Learn by doing.
  • Build a portfolio of projects.
  • Keep challenging yourself.

Top 5 Python Certifications - Best of 2024
  • PCEP (Certified Entry-level Python Programmer)
  • PCAP (Certified Associate in Python Programmer)
  • PCPP1 & PCPP2 (Certified Professional in Python Programming 1 & 2)
  • Certified Expert in Python Programming (CEPP)
  • Introduction to Programming Using Python by Microsoft.

The average salary for Python Developer is β‚Ή5,55,000 per year in the India. The average additional cash compensation for a Python Developer is within a range from β‚Ή3,000 - β‚Ή1,20,000.

The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python website, https://www.python.org/, and may be freely distributed.

If you're looking for a lucrative and in-demand career path, you can't go wrong with Python. As one of the fastest-growing programming languages in the world, Python is an essential tool for businesses of all sizes and industries. Python is one of the most popular programming languages in the world today.

line

Copyrights © 2024 letsupdateskills All rights reserved