本文将介绍19个Python脚本,让你的工作实现自动化。
微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩
你是否厌倦了在日常工作中执行重复性任务?Python以其简洁和多功能性可以成为问题的解决方案。
在本文中,我们将探讨19个Python脚本及其代码,它们可以帮助自动化执行各种任务并提高工作效率。无论你是开发人员、数据分析师还是只希望简化工作流程的人,这些脚本都能满足需求。
目录
-
简介
-
文件管理自动化
-
使用Python进行网络抓取
-
文本处理和操作
-
电子邮件自动化
-
Excel电子表格自动化
-
与数据库交互
-
社交媒体自动化
-
系统任务自动化
-
图像编辑自动化
-
网络自动化
-
数据清洗和转换
-
PDF操作自动化
-
图形用户界面自动化
-
测试自动化
-
云服务自动化
-
金融自动化
-
自然语言处理
-
机器学习自动化
-
物联网设备自动化
简介
Python是一种流行的编程语言,以其简洁和易读性而闻名。它提供了大量的库和模块,使其成为自动化各种任务的绝佳选择。
接下来深入探索自动化的世界,探索可以简化工作并节省时间和精力的19个Python脚本。
1.文件管理自动化
1.1 - 对目录中的文件进行排序
# 用Python脚本按扩展名对目录中的文件进行排序
import os
from shutil import move
def sort_files(directory_path):
for filename in os.listdir(directory_path):
if os.path.isfile(os.path.join(directory_path, filename)):
file_extension = filename.split('.')[-1]
destination_directory = os.path.join(directory_path, file_extension)
if not os.path.exists(destination_directory):
os.makedirs(destination_directory)
move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename))
说明
这个Python脚本会根据文件扩展名将目录中的文件排序到子目录中。它能识别文件扩展名,并将文件移动到相应的子目录。这对于整理下载文件夹或为特定项目组织文件非常有用。
1.2 - 删除空文件夹
# Python脚本删除目录中的空文件夹
import os
def remove_empty_folders(directory_path):
for root, dirs, files in os.walk(directory_path, topdown=False):
for folder in dirs:
folder_path = os.path.join(root, folder)
if not os.listdir(folder_path):
os.rmdir(folder_path)
说明
这个Python脚本可以搜索并删除指定目录中的空文件夹。它可以帮助用户保持干净整洁的文件夹结构,尤其是在处理大型数据集时。
1.3 - 重命名多个文件
# Python脚本重命名一个目录中的多个文件
import os
def rename_files(directory_path, old_name, new_name):
for filename in os.listdir(directory_path):
if old_name in filename:
new_filename = filename.replace(old_name, new_name)
os.rename(os.path.join(directory_path, filename), os.path.join(directory_path, new_filename))
说明
这个Python脚本允许同时重命名一个目录中的多个文件。它将旧名称和新名称作为输入,并将符合指定条件的所有文件的旧名称替换为新名称。
2.使用Python进行网络抓取
2.1 - 从网站提取数据
# Python script for web scraping to extract data from a website
import requests
from bs4 import BeautifulSoup
def scrape_data(url):
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Your code here to extract relevant data from the website
说明
这个Python脚本利用requests
和BeautifulSoup
库从网站上抓取数据。它获取网页内容并使用BeautifulSoup
解析HTML。可以自定义脚本以提取特定数据,如标题、产品信息或价格。
2.2 - 批量下载图片
# 从网站批量下载图像的Python脚本
import requests
def download_images(url, save_directory):
response = requests.get(url)
if response.status_code == 200:
images = response.json() # Assuming the API returns a JSON array of image URLs
for index, image_url in enumerate(images):
image_response = requests.get(image_url)
if image_response.status_code == 200:
with open(f"{save_directory}/image_{index}.jpg", "wb") as f:
f.write(image_response.content)
说明
这个Python脚本用于从网站批量下载图片。它假定网站提供了一个JSON API,该API会返回一个图片URL数组。脚本会遍历URL并下载图片,然后将其保存到指定目录。
2.3 - 自动提交表单
# 在网站上自动提交表单的Python脚本
import requests
def submit_form(url, form_data):
response = requests.post(url, data=form_data)
if response.status_code == 200:
# 你在此处的代码用于处理表单提交后的响应
说明
这个Python脚本通过发送包含表单数据的POST请求,自动提交网站上的表单。可以通过提供URL和需要提交的表单数据来自定义脚本以进行提交。
3.文本处理和操作
3.1 - 计算文本文件中的字数
# Python脚本计算文本文件中的字数
def count_words(file_path):
with open(file_path, 'r') as f:
text = f.read()
word_count = len(text.split())
return word_count
说明
这个Python脚本会读取文本文件并计算其中包含的字数。它可用于快速分析文本文档的内容,或跟踪写作项目中的字数。
3.2 - 查找和替换文本
# Python脚本查找并替换文件中的文本
def find_replace(file_path, search_text, replace_text):
with open(file_path, 'r') as f:
text = f.read()
modified_text = text.replace(search_text, replace_text)
with open(file_path, 'w') as f:
f.write(modified_text)
说明
这个Python脚本可用于搜索文件中的特定文本,并将其替换为所需文本。它有助于批量替换某些短语或纠正大型文本文件中的错误。
3.3 - 生成随机文本
# 生成随机文本的Python脚本
import random
import string
def generate_random_text(length):
letters = string.ascii_letters + string.digits + string.punctuation
random_text = ''.join(random.choice(letters) for i in range(length))
return random_text
说明
这个Python脚本可生成指定长度的随机文本。它可用于测试和模拟目的,甚至可作为创意写作的随机内容来源。
4.电子邮件自动化
4.1 - 发送个性化电子邮件
# 向收件人列表发送个性化电子邮件的Python脚本
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_personalized_email(sender_email, sender_password, recipients, subject, body):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, sender_password)
for recipient_email in recipients:
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = recipient_email
message['Subject'] = subject
message.attach(MIMEText(body, 'plain'))
server.sendmail(sender_email, recipient_email, message.as_string())
server.quit()
说明
通过这个Python脚本,你可以向收件人列表发送个性化的电子邮件。可以自定义发件人的电子邮件、密码、主题、正文和收件人列表。请注意,出于安全考虑,在使用Gmail时应使用特定于应用程序的密码。
4.2 - 通过电子邮件发送文件附件
# 用Python脚本发送带有文件附件的电子邮件
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
def send_email_with_attachment(sender_email, sender_password, recipient_email, subject, body, file_path):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, sender_password)
message = MIMEMultipart()
message['From'] = sender_email
message['To'] = recipient_email
message['Subject'] = subject
message.attach(MIMEText(body, 'plain'))
with open(file_path, "rb") as attachment:
part = MIMEBase('application', 'octet-stream')
part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', f"attachment; filename= {file_path}")
message.attach(part)
server.sendmail(sender_email, recipient_email, message.as_string())
server.quit()
说明
通过这个Python脚本,你可以发送带有文件附件的电子邮件。只需提供发件人的电子邮件地址、密码、收件人的电子邮件地址、主题、正文和要附加文件的路径。
4.3 - 自动发送电子邮件提醒
# 自动发送电子邮件提醒的 Python 脚本
import smtplib
from email.mime.text import MIMEText
from datetime import datetime, timedelta
def send_reminder_email(sender_email, sender_password, recipient_email, subject, body, reminder_date):
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, sender_password)
now = datetime.now()
reminder_date = datetime.strptime(reminder_date, '%Y-%m-%d')
if now.date() == reminder_date.date():
message = MIMEText(body, 'plain')
message['From'] = sender_email
message['To'] = recipient_email
message['Subject'] = subject
server.sendmail(sender_email, recipient_email, message.as_string())
server.quit()
说明
这个Python脚本会根据指定日期自动发送电子邮件提醒。它非常适用于为重要任务或事件设置提醒,确保不会错过任何截止日期。
5.Excel电子表格自动化
5.1 - 读取和写入Excel
# 向Excel电子表格读写数据的Python脚本
import pandas as pd
def read_excel(file_path):
df = pd.read_excel(file_path)
return df
def write_to_excel(data, file_path):
df = pd.DataFrame(data)
df.to_excel(file_path, index=False)
说明
这个Python脚本使用pandas
库从Excel电子表格中读取数据,并将数据写入新的Excel文件。它允许以编程方式处理Excel文件,使数据处理和分析更加高效。
5.2 - 数据分析和可视化
# 使用pandas和matplotlib进行数据分析和可视化的Python脚本
import pandas as pd
import matplotlib.pyplot as plt
def analyze_and_visualize_data(data):
# Your code here for data analysis and visualization
pass
说明
这个Python脚本使用pandas
和matplotlib
库来执行数据分析和可视化。通过它可以探索数据集、获得洞察力并创建可视化的数据表示。
5.3 - 合并多个工作表
# 用Python脚本将多个Excel表单合并为一个表单
import pandas as pd
def merge_sheets(file_path, output_file_path):
xls = pd.ExcelFile(file_path)
df = pd.DataFrame()
for sheet_name in xls.sheet_names:
sheet_df = pd.read_excel(xls, sheet_name)
df = df.append(sheet_df)
df.to_excel(output_file_path, index=False)
说明
这个Python脚本能将来自Excel文件中多个工作表的数据合并到一个工作表中。当数据分散在不同的表单中,但又想将它们合并起来进行进一步的分析时,这个脚本就能派上用场了。
6.与数据库交互
6.1 - 连接到数据库
# 连接数据库并执行查询的Python脚本
import sqlite3
def connect_to_database(database_path):
connection = sqlite3.connect(database_path)
return connection
def execute_query(connection, query):
cursor = connection.cursor()
cursor.execute(query)
result = cursor.fetchall()
return result
说明
这个Python脚本允许连接到SQLite数据库并执行查询。可以根据需要使用适当的Python数据库驱动程序,使其适用于其他数据库管理系统,如MySQL或PostgreSQL。
6.2 - 执行SQL查询
# 在数据库上执行SQL查询的Python脚本
import sqlite3
def execute_query(connection, query):
cursor = connection.cursor()
cursor.execute(query)
result = cursor.fetchall()
return result
说明
这个Python脚本是一个通用函数,用于在数据库中执行SQL查询。可以将查询作为参数与数据库连接对象一起传递给函数,它将返回查询的结果。
6.3 - 数据备份和恢复
import shutil
def backup_database(database_path, backup_directory):
shutil.copy(database_path, backup_directory)
def restore_database(backup_path, database_directory):
shutil.copy(backup_path, database_directory)
说明
这个Python脚本允许创建数据库备份,并在需要时进行恢复。这是一项预防措施,可用于保护宝贵的数据免遭意外丢失。
7.社交媒体自动化
7.1 - 在Twitter和Facebook上发布信息
# 在Twitter和Facebook上自动发布的Python脚本
from twython import Twython
import facebook
def post_to_twitter(api_key, api_secret, access_token, access_token_secret, message):
twitter = Twython(api_key, api_secret, access_token, access_token_secret)
twitter.update_status(status=message)
def post_to_facebook(api_key, api_secret, access_token, message):
graph = facebook.GraphAPI(access_token)
graph.put_object(parent_object='me', connection_name='feed', message=message)
说明
该Python脚本利用Twython
和facebook-sdk
库实现了在Twitter和Facebook上自动发布内容的功能。可以使用它将Python脚本中的更新、公告或内容直接分享到社交媒体个人资料上。
7.2 - 自动社交媒体分享
# 在社交媒体平台上自动分享内容的Python脚本
import random
def get_random_content():
# 从列表或数据库中获取随机内容的代码
pass
def post_random_content_to_twitter(api_key, api_secret, access_token, access_token_secret):
content = get_random_content()
post_to_twitter(api_key, api_secret, access_token, access_token_secret, content)
def post_random_content_to_facebook(api_key, api_secret, access_token):
content = get_random_content()
post_to_facebook(api_key, api_secret, access_token, content)
说明
这个Python脚本实现了在Twitter和Facebook上自动分享随机内容的功能。可以根据需要自定义代码,从列表或数据库中获取内容,并定期分享到社交媒体平台上。
7.3 - 爬取社交媒体数据
# 用于从社交媒体平台抓取数据的Python脚本
import requests
def scrape_social_media_data(url):
response = requests.get(url)
# 从响应中提取相关数据的代码
说明
该Python脚本可执行网络抓取,从社交媒体平台中提取数据。它获取所提供URL的内容,然后使用BeautifulSou
p等技术解析HTML并提取所需的数据。
8.系统任务自动化
8.1 - 管理系统进程
# 管理系统进程的Python脚本
import psutil
def get_running_processes():
return [p.info for p in psutil.process_iter(['pid', 'name', 'username'])]
def kill_process_by_name(process_name):
for p in psutil.process_iter(['pid', 'name', 'username']):
if p.info['name'] == process_name:
p.kill()
说明
这个Python脚本使用psutil
库来管理系统进程。它允许检索正在运行的进程列表,并根据其名称终止特定进程。
8.2 - 使用Cron调度任务
# 使用cron语法安排任务的Python脚本
from crontab import CronTab
def schedule_task(command, schedule):
cron = CronTab(user=True)
job = cron.new(command=command)
job.setall(schedule)
cron.write()
说明
这个Python脚本利用crontab
库使用Cron
语法来调度任务。它可以定期或在特定时间自动执行特定命令。
8.3 - 监控磁盘空间
# Python脚本监控磁盘空间,并在空间不足时发出警报
import psutil
def check_disk_space(minimum_threshold_gb):
disk = psutil.disk_usage('/')
free_space_gb = disk.free / (230) # Convert bytes to GB
if free_space_gb < minimum_threshold_gb:
# Your code here to send an alert (email, notification, etc.)
pass
说明
这个Python脚本会监控系统中的可用磁盘空间,并在空间低于指定阈值时发出警报。它有助于主动管理磁盘空间,防止因磁盘空间不足而导致潜在的数据丢失。
9.图像编辑自动化
9.1 - 调整图像大小和裁剪
# 调整和裁剪图像大小的Python脚本
from PIL import Image
def resize_image(input_path, output_path, width, height):
image = Image.open(input_path)
resized_image = image.resize((width, height), Image.ANTIALIAS)
resized_image.save(output_path)
def crop_image(input_path, output_path, left, top, right, bottom):
image = Image.open(input_path)
cropped_image = image.crop((left, top, right, bottom))
cropped_image.save(output_path)
说明
该Python脚本使用Python Imaging Library (PIL)来调整大小和裁剪图像。它有助于为不同的显示分辨率或特定用例准备图像。
9.2 - 为图像添加水印
# 为图像添加水印的Python脚本
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
def add_watermark(input_path, output_path, watermark_text):
image = Image.open(input_path)
draw = ImageDraw.Draw(image)
font = ImageFont.truetype('arial.ttf', 36)
draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font)
image.save(output_path)
说明
这个Python脚本可为图片添加水印。可以自定义水印文本、字体和位置,以生成个性化图像。
9.3 - 创建图像缩略图
# 创建图像缩略图的Python脚本
from PIL import Image
def create_thumbnail(input_path, output_path, size=(128, 128)):
image = Image.open(input_path)
image.thumbnail(size)
image.save(output_path)
说明
此Python脚本可根据原始图像创建缩略图,可用于生成预览图像或缩小图像尺寸以加快网站加载速度。
推荐书单
IT BOOK 多得(点击查看5折活动书单)https://u.jd.com/psx2y1M
《Python从入门到精通(第3版)》
《Python从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分27章,包括初识Python、Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式、函数、面向对象程序设计、模块、文件及目录操作、操作数据库、使用进程和线程、网络编程、异常处理及程序调试、Pygame游戏编程、推箱子游戏、网络爬虫开发、火车票分析助手、数据可视化、京东电商销售数据分析与预测、Web编程、Flask框架、e起去旅行网站、Python自动化办公、AI图像识别工具等内容。书中所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。
《Python从入门到精通(第3版)》https://item.jd.com/14055900.html
精彩回顾
微信搜索关注《Python学研大本营》,加入读者群
访问【IT今日热榜】,发现每日技术热点