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
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)Written by
Test Development Learning Exchange
Test Development Learning Exchange
0 followers
Reader feedback
How this landed with the community
Rate this article
Was this worth your time?
Discussion
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.