当前位置:   article > 正文

19个最佳自动化工作的Python脚本(上)

19个最佳自动化工作的Python脚本(上)

本文将介绍19个Python脚本,让你的工作实现自动化。

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

图片

你是否厌倦了在日常工作中执行重复性任务?Python以其简洁和多功能性可以成为问题的解决方案。

在本文中,我们将探讨19个Python脚本及其代码,它们可以帮助自动化执行各种任务并提高工作效率。无论你是开发人员、数据分析师还是只希望简化工作流程的人,这些脚本都能满足需求。

图片

目录

  • 简介

  1. 文件管理自动化

  2. 使用Python进行网络抓取

  3. 文本处理和操作

  4. 电子邮件自动化

  5. Excel电子表格自动化

  6. 与数据库交互

  7. 社交媒体自动化

  8. 系统任务自动化

  9. 图像编辑自动化

  10. 网络自动化

  11. 数据清洗和转换

  12. PDF操作自动化

  13. 图形用户界面自动化

  14. 测试自动化

  15. 云服务自动化

  16. 金融自动化

  17. 自然语言处理

  18. 机器学习自动化

  19. 物联网设备自动化

简介

Python是一种流行的编程语言,以其简洁和易读性而闻名。它提供了大量的库和模块,使其成为自动化各种任务的绝佳选择。

接下来深入探索自动化的世界,探索可以简化工作并节省时间和精力的19个Python脚本。

1.文件管理自动化

1.1 - 对目录中的文件进行排序

  1. # 用Python脚本按扩展名对目录中的文件进行排序
  2. import os
  3. from shutil import move
  4. def sort_files(directory_path):
  5. for filename in os.listdir(directory_path):
  6. if os.path.isfile(os.path.join(directory_path, filename)):
  7. file_extension = filename.split('.')[-1]
  8. destination_directory = os.path.join(directory_path, file_extension)
  9. if not os.path.exists(destination_directory):
  10. os.makedirs(destination_directory)
  11. move(os.path.join(directory_path, filename), os.path.join(destination_directory, filename))
说明

这个Python脚本会根据文件扩展名将目录中的文件排序到子目录中。它能识别文件扩展名,并将文件移动到相应的子目录。这对于整理下载文件夹或为特定项目组织文件非常有用。

1.2 - 删除空文件夹

  1. # Python脚本删除目录中的空文件夹
  2. import os
  3. def remove_empty_folders(directory_path):
  4. for root, dirs, files in os.walk(directory_path, topdown=False):
  5. for folder in dirs:
  6. folder_path = os.path.join(root, folder)
  7. if not os.listdir(folder_path):
  8. os.rmdir(folder_path)
说明

这个Python脚本可以搜索并删除指定目录中的空文件夹。它可以帮助用户保持干净整洁的文件夹结构,尤其是在处理大型数据集时。

1.3 - 重命名多个文件

  1. # Python脚本重命名一个目录中的多个文件
  2. import os
  3. def rename_files(directory_path, old_name, new_name):
  4. for filename in os.listdir(directory_path):
  5. if old_name in filename:
  6. new_filename = filename.replace(old_name, new_name)
  7. os.rename(os.path.join(directory_path, filename), os.path.join(directory_path, new_filename))
说明

这个Python脚本允许同时重命名一个目录中的多个文件。它将旧名称和新名称作为输入,并将符合指定条件的所有文件的旧名称替换为新名称。

2.使用Python进行网络抓取

2.1 - 从网站提取数据

  1. # Python script for web scraping to extract data from a website
  2. import requests
  3. from bs4 import BeautifulSoup
  4. def scrape_data(url):
  5. response = requests.get(url)
  6. soup = BeautifulSoup(response.text, 'html.parser')
  7. # Your code here to extract relevant data from the website
说明

这个Python脚本利用requestsBeautifulSoup库从网站上抓取数据。它获取网页内容并使用BeautifulSoup解析HTML。可以自定义脚本以提取特定数据,如标题、产品信息或价格。

2.2 - 批量下载图片

  1. # 从网站批量下载图像的Python脚本
  2. import requests
  3. def download_images(url, save_directory):
  4. response = requests.get(url)
  5. if response.status_code == 200:
  6. images = response.json() # Assuming the API returns a JSON array of image URLs
  7. for index, image_url in enumerate(images):
  8. image_response = requests.get(image_url)
  9. if image_response.status_code == 200:
  10. with open(f"{save_directory}/image_{index}.jpg""wb"as f:
  11. f.write(image_response.content)
说明

这个Python脚本用于从网站批量下载图片。它假定网站提供了一个JSON API,该API会返回一个图片URL数组。脚本会遍历URL并下载图片,然后将其保存到指定目录。

2.3 - 自动提交表单

  1. # 在网站上自动提交表单的Python脚本
  2. import requests
  3. def submit_form(url, form_data):
  4. response = requests.post(url, data=form_data)
  5. if response.status_code == 200:
  6. # 你在此处的代码用于处理表单提交后的响应
说明

这个Python脚本通过发送包含表单数据的POST请求,自动提交网站上的表单。可以通过提供URL和需要提交的表单数据来自定义脚本以进行提交。

3.文本处理和操作

3.1 - 计算文本文件中的字数

  1. # Python脚本计算文本文件中的字数
  2. def count_words(file_path):
  3. with open(file_path, 'r'as f:
  4. text = f.read()
  5. word_count = len(text.split())
  6. return word_count
说明

这个Python脚本会读取文本文件并计算其中包含的字数。它可用于快速分析文本文档的内容,或跟踪写作项目中的字数。

3.2 - 查找和替换文本

  1. # Python脚本查找并替换文件中的文本
  2. def find_replace(file_path, search_text, replace_text):
  3. with open(file_path, 'r'as f:
  4. text = f.read()
  5. modified_text = text.replace(search_text, replace_text)
  6. with open(file_path, 'w'as f:
  7. f.write(modified_text)
说明

这个Python脚本可用于搜索文件中的特定文本,并将其替换为所需文本。它有助于批量替换某些短语或纠正大型文本文件中的错误。

3.3 - 生成随机文本

  1. # 生成随机文本的Python脚本
  2. import random
  3. import string
  4. def generate_random_text(length):
  5. letters = string.ascii_letters + string.digits + string.punctuation
  6. random_text = ''.join(random.choice(letters) for i in range(length))
  7. return random_text
说明

这个Python脚本可生成指定长度的随机文本。它可用于测试和模拟目的,甚至可作为创意写作的随机内容来源。

4.电子邮件自动化

4.1 - 发送个性化电子邮件

  1. # 向收件人列表发送个性化电子邮件的Python脚本
  2. import smtplib
  3. from email.mime.text import MIMEText
  4. from email.mime.multipart import MIMEMultipart
  5. def send_personalized_email(sender_email, sender_password, recipients, subject, body):
  6. server = smtplib.SMTP('smtp.gmail.com'587)
  7. server.starttls()
  8. server.login(sender_email, sender_password)
  9. for recipient_email in recipients:
  10. message = MIMEMultipart()
  11. message['From'] = sender_email
  12. message['To'] = recipient_email
  13. message['Subject'] = subject
  14. message.attach(MIMEText(body, 'plain'))
  15. server.sendmail(sender_email, recipient_email, message.as_string())
  16. server.quit()
说明

通过这个Python脚本,你可以向收件人列表发送个性化的电子邮件。可以自定义发件人的电子邮件、密码、主题、正文和收件人列表。请注意,出于安全考虑,在使用Gmail时应使用特定于应用程序的密码。

4.2 - 通过电子邮件发送文件附件

  1. # 用Python脚本发送带有文件附件的电子邮件
  2. import smtplib
  3. from email.mime.multipart import MIMEMultipart
  4. from email.mime.base import MIMEBase
  5. from email import encoders
  6. def send_email_with_attachment(sender_email, sender_password, recipient_email, subject, body, file_path):
  7. server = smtplib.SMTP('smtp.gmail.com'587)
  8. server.starttls()
  9. server.login(sender_email, sender_password)
  10. message = MIMEMultipart()
  11. message['From'= sender_email
  12. message['To'= recipient_email
  13. message['Subject'= subject
  14. message.attach(MIMEText(body, 'plain'))
  15. with open(file_path, "rb"as attachment:
  16. part = MIMEBase('application''octet-stream')
  17. part.set_payload(attachment.read())
  18. encoders.encode_base64(part)
  19. part.add_header('Content-Disposition', f"attachment; filename= {file_path}")
  20. message.attach(part)
  21. server.sendmail(sender_email, recipient_email, message.as_string())
  22. server.quit()
说明

通过这个Python脚本,你可以发送带有文件附件的电子邮件。只需提供发件人的电子邮件地址、密码、收件人的电子邮件地址、主题、正文和要附加文件的路径。

4.3 - 自动发送电子邮件提醒

  1. # 自动发送电子邮件提醒的 Python 脚本
  2. import smtplib
  3. from email.mime.text import MIMEText
  4. from datetime import datetime, timedelta
  5. def send_reminder_email(sender_email, sender_password, recipient_email, subject, body, reminder_date):
  6. server = smtplib.SMTP('smtp.gmail.com'587)
  7. server.starttls()
  8. server.login(sender_email, sender_password)
  9. now = datetime.now()
  10. reminder_date = datetime.strptime(reminder_date'%Y-%m-%d')
  11. if now.date() == reminder_date.date():
  12. message = MIMEText(body, 'plain')
  13. message['From'= sender_email
  14. message['To'= recipient_email
  15. message['Subject'= subject
  16. server.sendmail(sender_email, recipient_email, message.as_string())
  17. server.quit()
说明

这个Python脚本会根据指定日期自动发送电子邮件提醒。它非常适用于为重要任务或事件设置提醒,确保不会错过任何截止日期。

5.Excel电子表格自动化

5.1 - 读取和写入Excel

  1. # 向Excel电子表格读写数据的Python脚本
  2. import pandas as pd
  3. def read_excel(file_path):
  4. df = pd.read_excel(file_path)
  5. return df
  6. def write_to_excel(datafile_path):
  7. df = pd.DataFrame(data)
  8. df.to_excel(file_path, index=False)

说明

这个Python脚本使用pandas库从Excel电子表格中读取数据,并将数据写入新的Excel文件。它允许以编程方式处理Excel文件,使数据处理和分析更加高效。

5.2 - 数据分析和可视化

  1. # 使用pandas和matplotlib进行数据分析和可视化的Python脚本
  2. import pandas as pd
  3. import matplotlib.pyplot as plt
  4. def analyze_and_visualize_data(data):
  5. # Your code here for data analysis and visualization
  6. pass
说明

这个Python脚本使用pandasmatplotlib库来执行数据分析和可视化。通过它可以探索数据集、获得洞察力并创建可视化的数据表示。

5.3 - 合并多个工作表

  1. # 用Python脚本将多个Excel表单合并为一个表单
  2. import pandas as pd
  3. def merge_sheets(file_path, output_file_path):
  4. xls = pd.ExcelFile(file_path)
  5. df = pd.DataFrame()
  6. for sheet_name in xls.sheet_names:
  7. sheet_df = pd.read_excel(xls, sheet_name)
  8. df = df.append(sheet_df)
  9. df.to_excel(output_file_path, index=False)
说明

这个Python脚本能将来自Excel文件中多个工作表的数据合并到一个工作表中。当数据分散在不同的表单中,但又想将它们合并起来进行进一步的分析时,这个脚本就能派上用场了。

6.与数据库交互

6.1 - 连接到数据库

  1. # 连接数据库并执行查询的Python脚本
  2. import sqlite3
  3. def connect_to_database(database_path):
  4. connection = sqlite3.connect(database_path)
  5. return connection
  6. def execute_query(connection, query):
  7. cursor = connection.cursor()
  8. cursor.execute(query)
  9. result = cursor.fetchall()
  10. return result
说明

这个Python脚本允许连接到SQLite数据库并执行查询。可以根据需要使用适当的Python数据库驱动程序,使其适用于其他数据库管理系统,如MySQL或PostgreSQL。

6.2 - 执行SQL查询

  1. # 在数据库上执行SQL查询的Python脚本
  2. import sqlite3
  3. def execute_query(connection, query):
  4. cursor = connection.cursor()
  5. cursor.execute(query)
  6. result = cursor.fetchall()
  7. return result
说明

这个Python脚本是一个通用函数,用于在数据库中执行SQL查询。可以将查询作为参数与数据库连接对象一起传递给函数,它将返回查询的结果。

6.3 - 数据备份和恢复

  1. import shutil
  2. def backup_database(database_path, backup_directory):
  3. shutil.copy(database_path, backup_directory)
  4. def restore_database(backup_path, database_directory):
  5. shutil.copy(backup_path, database_directory)
说明

这个Python脚本允许创建数据库备份,并在需要时进行恢复。这是一项预防措施,可用于保护宝贵的数据免遭意外丢失。

7.社交媒体自动化

7.1 - 在Twitter和Facebook上发布信息

  1. # 在Twitter和Facebook上自动发布的Python脚本
  2. from twython import Twython
  3. import facebook
  4. def post_to_twitter(api_key, api_secret, access_token, access_token_secret, message):
  5.     twitter = Twython(api_key, api_secret, access_token, access_token_secret)
  6.     twitter.update_status(status=message)
  7. def post_to_facebook(api_key, api_secret, access_token, message):
  8.     graph = facebook.GraphAPI(access_token)
  9.     graph.put_object(parent_object='me', connection_name='feed', message=message)
说明

该Python脚本利用Twythonfacebook-sdk库实现了在Twitter和Facebook上自动发布内容的功能。可以使用它将Python脚本中的更新、公告或内容直接分享到社交媒体个人资料上。

7.2 - 自动社交媒体分享

  1. # 在社交媒体平台上自动分享内容的Python脚本
  2. import random
  3. def get_random_content():
  4. # 从列表或数据库中获取随机内容的代码
  5. pass
  6. def post_random_content_to_twitter(api_key, api_secret, access_token, access_token_secret):
  7. content = get_random_content()
  8. post_to_twitter(api_key, api_secret, access_token, access_token_secret, content)
  9. def post_random_content_to_facebook(api_key, api_secret, access_token):
  10. content = get_random_content()
  11. post_to_facebook(api_key, api_secret, access_token, content)
说明

这个Python脚本实现了在Twitter和Facebook上自动分享随机内容的功能。可以根据需要自定义代码,从列表或数据库中获取内容,并定期分享到社交媒体平台上。

7.3 - 爬取社交媒体数据

  1. # 用于从社交媒体平台抓取数据的Python脚本
  2. import requests
  3. def scrape_social_media_data(url):
  4. response = requests.get(url)
  5. # 从响应中提取相关数据的代码
说明

该Python脚本可执行网络抓取,从社交媒体平台中提取数据。它获取所提供URL的内容,然后使用BeautifulSoup等技术解析HTML并提取所需的数据。

8.系统任务自动化

8.1 - 管理系统进程

  1. # 管理系统进程的Python脚本
  2. import psutil
  3. def get_running_processes():
  4. return [p.info for p in psutil.process_iter(['pid''name''username'])]
  5. def kill_process_by_name(process_name):
  6. for p in psutil.process_iter(['pid''name''username']):
  7. if p.info['name'] == process_name:
  8. p.kill()
说明

这个Python脚本使用psutil库来管理系统进程。它允许检索正在运行的进程列表,并根据其名称终止特定进程。

8.2 - 使用Cron调度任务

  1. # 使用cron语法安排任务的Python脚本
  2. from crontab import CronTab
  3. def schedule_task(command, schedule):
  4. cron = CronTab(user=True)
  5. job = cron.new(command=command)
  6. job.setall(schedule)
  7. cron.write()
说明

这个Python脚本利用crontab库使用Cron语法来调度任务。它可以定期或在特定时间自动执行特定命令。

8.3 - 监控磁盘空间

  1. # Python脚本监控磁盘空间,并在空间不足时发出警报
  2. import psutil
  3. def check_disk_space(minimum_threshold_gb):
  4. disk = psutil.disk_usage('/')
  5. free_space_gb = disk.free / (230) # Convert bytes to GB
  6. if free_space_gb < minimum_threshold_gb:
  7. # Your code here to send an alert (email, notification, etc.)
  8. pass
说明

这个Python脚本会监控系统中的可用磁盘空间,并在空间低于指定阈值时发出警报。它有助于主动管理磁盘空间,防止因磁盘空间不足而导致潜在的数据丢失。

9.图像编辑自动化

9.1 - 调整图像大小和裁剪

  1. # 调整和裁剪图像大小的Python脚本
  2. from PIL import Image
  3. def resize_image(input_path, output_path, width, height):
  4. image = Image.open(input_path)
  5. resized_image = image.resize((width, height), Image.ANTIALIAS)
  6. resized_image.save(output_path)
  7. def crop_image(input_path, output_path, lefttoprightbottom):
  8. image = Image.open(input_path)
  9. cropped_image = image.crop((lefttoprightbottom))
  10. cropped_image.save(output_path)
说明

该Python脚本使用Python Imaging Library (PIL)来调整大小和裁剪图像。它有助于为不同的显示分辨率或特定用例准备图像。

9.2 - 为图像添加水印

  1. # 为图像添加水印的Python脚本
  2. from PIL import Image
  3. from PIL import ImageDraw
  4. from PIL import ImageFont
  5. def add_watermark(input_path, output_path, watermark_text):
  6. image = Image.open(input_path)
  7. draw = ImageDraw.Draw(image)
  8. font = ImageFont.truetype('arial.ttf'36)
  9. draw.text((1010), watermark_text, fill=(255255255128), font=font)
  10. image.save(output_path)
说明

这个Python脚本可为图片添加水印。可以自定义水印文本、字体和位置,以生成个性化图像。

9.3 - 创建图像缩略图

  1. # 创建图像缩略图的Python脚本
  2. from PIL import Image
  3. def create_thumbnail(input_path, output_path, size=(128128)):
  4. image = Image.open(input_path)
  5. image.thumbnail(size)
  6. image.save(output_path)
说明

此Python脚本可根据原始图像创建缩略图,可用于生成预览图像或缩小图像尺寸以加快网站加载速度。

推荐书单

IT BOOK 多得(点击查看5折活动书单)icon-default.png?t=N7T8https://u.jd.com/psx2y1M

《Python从入门到精通(第3版)》

《Python从入门到精通(第3版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分27章,包括初识Python、Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式、函数、面向对象程序设计、模块、文件及目录操作、操作数据库、使用进程和线程、网络编程、异常处理及程序调试、Pygame游戏编程、推箱子游戏、网络爬虫开发、火车票分析助手、数据可视化、京东电商销售数据分析与预测、Web编程、Flask框架、e起去旅行网站、Python自动化办公、AI图像识别工具等内容。书中所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。

《Python从入门到精通(第3版)》icon-default.png?t=N7T8https://item.jd.com/14055900.html

图片

精彩回顾

《使用Python内置模块加速SQL查询》

《5个用于地理空间数据分析的Python包》

《预测未来,Python中的时间序列分析模型ARIMA》

《3步掌握Python中的正则表达式》

《基于功夫熊猫实例探索Python风格像素游戏》

《8个有趣实用的Python脚本》

微信搜索关注《Python学研大本营》,加入读者群

访问【IT今日热榜】,发现每日技术热点

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/276438
推荐阅读
相关标签
  

闽ICP备14008679号