Backend Development 7 min read

10 Handy Python Scripts for Common File and Data Tasks

This article presents ten practical Python scripts that automate everyday tasks such as renaming files, creating ZIP backups, merging PDFs, replacing text, compressing images, scraping web pages, processing Excel data, sending emails, parsing logs, and searching files, each accompanied by ready‑to‑run code examples.

Test Development Learning Exchange
Test Development Learning Exchange
Test Development Learning Exchange
10 Handy Python Scripts for Common File and Data Tasks

1. File Renaming Tool

import os
def rename_files(directory, prefix):
    for filename in os.listdir(directory):
        file_path = os.path.join(directory, filename)
        if os.path.isfile(file_path):
            new_filename = f"{prefix}_{filename}"
            new_file_path = os.path.join(directory, new_filename)
            os.rename(file_path, new_file_path)
            print(f"Renamed '{filename}' to '{new_filename}'")

directory = '/path/to/your/files'
prefix = 'file'
rename_files(directory, prefix)

2. Backup Folder to ZIP File

import zipfile
import os
def backup_to_zip(folder):
    folder = os.path.abspath(folder)  # Make sure the folder is absolute.
    number = 1
    while True:
        zip_filename = f"backup_{number}.zip"
        if not os.path.exists(zip_filename):
            break
        number += 1
    print(f"Creating {zip_filename}...")
    backup_zip = zipfile.ZipFile(zip_filename, 'w')
    for foldername, subfolders, filenames in os.walk(folder):
        print(f'Adding files in {foldername}...')
        backup_zip.write(foldername)
        for filename in filenames:
            new_base = os.path.basename(folder) + '_'
            if filename.startswith(new_base) and filename.endswith('.zip'):
                continue  # skip zip files starting with the new base name
            backup_zip.write(os.path.join(foldername, filename))
    backup_zip.close()
    print("Backup Complete.")

backup_to_zip('/path/to/your/folder')

3. PDF Page Merge Tool

from PyPDF2 import PdfReader, PdfWriter
def merge_pdfs(paths, output):
    pdf_writer = PdfWriter()
    for path in paths:
        pdf_reader = PdfReader(path)
        for page in range(len(pdf_reader.pages)):
            pdf_writer.add_page(pdf_reader.pages[page])
    with open(output, 'wb') as fh:
        pdf_writer.write(fh)

paths = ['/path/to/file1.pdf', '/path/to/file2.pdf']
output = '/path/to/output.pdf'
merge_pdfs(paths, output)

4. Text Replacement Tool

import re
def replace_text_in_file(filename, old_text, new_text):
    with open(filename, 'r') as file:
        file_data = file.read()
    file_data = re.sub(old_text, new_text, file_data)
    with open(filename, 'w') as file:
        file.write(file_data)

filename = '/path/to/your/file.txt'
old_text = 'old_text'
new_text = 'new_text'
replace_text_in_file(filename, old_text, new_text)

5. Image Compression Tool

from PIL import Image
def compress_image(input_image_path, output_image_path, quality=85):
    picture = Image.open(input_image_path)
    picture.save(output_image_path, optimize=True, quality=quality)

input_image_path = '/path/to/your/image.jpg'
output_image_path = '/path/to/compressed/image.jpg'
compress_image(input_image_path, output_image_path)

6. Web Page Scraping Tool

import requests
from bs4 import BeautifulSoup
def get_page_title(url):
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')
    title = soup.title.string
    return title

url = 'https://example.com'
title = get_page_title(url)
print(f"The title of the webpage is: {title}")

7. Excel Data Processing Tool

import pandas as pd
def process_excel(file_path, sheet_name):
    data = pd.read_excel(file_path, sheet_name=sheet_name)
    # 进行数据处理...
    processed_data = data[data['column_name'] > 10]  # 示例:筛选大于10的数据
    processed_data.to_excel('processed_data.xlsx', index=False)

file_path = '/path/to/your/excel.xlsx'
sheet_name = 'Sheet1'
process_excel(file_path, sheet_name)

8. Send Email Tool

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def send_email(subject, body, to, server='localhost'):
    msg = MIMEMultipart()
    msg['From'] = '[email protected]'
    msg['To'] = to
    msg['Subject'] = subject
    msg.attach(MIMEText(body, 'plain'))
    with smtplib.SMTP(server) as smtp:
        smtp.send_message(msg)

subject = 'Hello!'
body = 'This is a test email.'
to = '[email protected]'
send_email(subject, body, to)

9. Log Analysis Tool

import re
def parse_logs(log_file_path):
    pattern = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
    with open(log_file_path, 'r') as log_file:
        for line in log_file:
            match = re.search(pattern, line)
            if match:
                ip_address = match.group()
                print(ip_address)

log_file_path = '/path/to/your/log.txt'
parse_logs(log_file_path)

10. File Search Tool

import os
def search_files(directory, keyword):
    for root, dirs, files in os.walk(directory):
        for file in files:
            if keyword in file:
                print(os.path.join(root, file))

directory = '/path/to/search'
keyword = 'search_term'
search_files(directory, keyword)
Pythonautomationscriptingfile managementutilities
Test Development Learning Exchange
Written by

Test Development Learning Exchange

Test Development Learning Exchange

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.