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 - 对目录中的文件进行排序

# 用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脚本利用requestsBeautifulSoup库从网站上抓取数据。它获取网页内容并使用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脚本使用pandasmatplotlib库来执行数据分析和可视化。通过它可以探索数据集、获得洞察力并创建可视化的数据表示。

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脚本利用Twythonfacebook-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的内容,然后使用BeautifulSoup等技术解析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折活动书单)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今日热榜】,发现每日技术热点

  • 40
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、linux 1,linux常用命令 2,某个时间段日志的查询 3,linux文件的上传和下载 二、功能测试 1,工作中所遇到的错误 2,测试流程: 3,测试计划元素: 4,测试报告元素: 5,测试点: 6,测试方法: 7,bug相关问题 8,adb常用命令 9,软件测试原则 10,测试用例编写的要素 11,测试用例的设计原则 12,软件产品质量特性 13,android四大组件 14,web测试和app测试的区别 15,app的anr的根本原因 16,app的crash的原因 17,h5页面图片未加载出来问题排查 18,区分原生和h5页面 19,为什么不能用jenkins打包 三、性能测试 1,了解jmeter 2,性能指标 3,如何做性能测试 四、接口测试 1,如何设计接口测试用例 2,为什么要做接口测试 3,接口测试的关注点 4,request处理cookie的三种方式 五、自动化测试 1,自动化核心框架 2,自动化测试的好处 3,自动化的前提 4,自动化测试的场景 5,元素定位的8种方式 6,如果一个元素无法定位,一般会考虑哪些原因 7,driver.close()和driver.quit()的区别 8,自动化脚本断言 9,判断页面元素是否存在 10,js在web自动化中的作用展示 11,自动化代码优化 12,selenium对比RF 13,自动化测试脚本三种等待 14,PO模式 六、HTTP协议 1,HTTP协议特点: 2,HTTP传输原理 3,get和post的区别 4,HTTP响应代码 5,osi七层模型 6,三次握手过程 7,session和cookie的区别 8,tcp和udp的区别 9,sockect通信原理 10,post的三种请求方式 七、数据库 1,sql分类 2,数据库事务特性:ACID 3,mysql索引的类型 4,池化思想 5,redis 6,如何提高数据库运行效率 八、java 1,面向对象的三个特征 2,重写和重载 3,比较sping,sping mvc 4,进程和线程的区别 5,java三层架构 6,处理异常 九、python 1,字符串反转的7种方法 2,new 和 _init_ 3,不使用中间变量交换两个变量的值 4,python四大内置高阶函数 5,python带颜色输出 6,python *args,**kargs用法 7,python常用模块 8,python多线程 9,python发送邮件 10,python操作图像 11,python的replace()方法的使用
实用自动化运维Python脚本分享主要是为了提高运维工作的效率和准确性,简化重复性的操作,节省人力和时间成本。Python作为一种强大的脚本语言,具有易学易用、丰富的库和模块支持等优点,非常适合用于运维自动化。 首先,实用自动化运维Python脚本可以对服务器进行批量管理和监控。脚本可以通过SSH远程连接服务器,执行各种操作,如批量安装软件、配置服务器、部署应用等。同时,可以编写脚本监控服务器的性能指标,如CPU、内存、磁盘等,及时发现问题并进行处理。 其次,实用自动化运维Python脚本可以进行日志分析和故障排查。通过解析服务器和应用程序的日志文件,可以自动化地检测错误信息,分析日志文件的结构和内容,帮助快速定位问题的根本原因。这在大规模分布式系统中尤为重要,可以快速捕捉异常和故障,提高故障处理的效率。 另外,实用自动化运维Python脚本还可以进行配置管理和版本控制。通过脚本,可以自动备份和还原配置文件,实现配置的快速恢复和管理。同时,可以使用版本控制工具(如Git)来管理配置文件的变更,确保对服务器环境的改动有记录可查。 最后,实用自动化运维Python脚本可以进行应用部署和上线。通过编写脚本,可以自动化地将应用程序打包、上传、解压、配置等一系列操作,实现一键部署。还可以结合CI/CD工具实现自动化的持续集成和持续部署,提高开发和运维之间的协作效率。 总结来说,实用自动化运维Python脚本可以帮助运维人员简化工作流程,减少重复劳动,提高效率和准确性。同时,Python的简洁性和灵活性也使得运维人员可以根据实际需求编写出适合自己环境的自动化脚本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值