首页 > 编程语言 >常用python自动化脚本

常用python自动化脚本

时间:2023-11-08 16:26:05浏览次数:35  
标签:脚本 python 自动化 Python file import path email

目录

  1. 自动化文件管理
  2. 使用Python进行网页抓取
  3. 文本处理和操作
  4. 自动发送电子邮件
  5. 自动化Excel电子表格
  6. 与数据库交互
  7. 自动化系统任务
  8. 网络自动化
  9. 数据清理和转换
  10. 自动化PDF操作
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))

1.2 - 删除空文件夹

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)
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))
2. 使用Python进行网页抓取

2.1 - 从网站中提取数据

# 使用Python进行网页抓取的脚本,以从网站中提取数据
import requests
from bs4 import BeautifulSoup

def scrape_data(url):
  response = requests.get(url)
  soup = BeautifulSoup(response.text, 'html.parser')
  # 在此处编写代码,从网站中提取相关数据

2.2 - 批量下载图片

# Python脚本,用于从网站批量下载图片
import requests

def download_images(url, save_directory):
  response = requests.get(url)
  if response.status_code == 200:
    images = response.json() # 假设API返回图片URL的JSON数组
    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)

2.3 - 自动提交表单

# Python脚本,用于自动在网站上提交表单
import requests

def submit_form(url, form_data):
  response = requests.post(url, data=form_data)
  if response.status_code == 200:
    # 在此处编写代码以处理表单提交后的响应

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
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)

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

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

# Python脚本,用于读写Excel电子表格中的数据

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):

  # 在此处编写数据分析和可视化的代码

  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查询

# Python脚本,用于在数据库上执行SQL查询

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 - 管理系统进程

# 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库来管理系统进程。它允许你检索运行进程的列表并通过名称终止指定的进程。

7.2 - 使用Cron安排任务

# Python脚本,用于使用cron语法安排任务

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语法来调度任务。它支持以正则间隔或特定时间自动执行特定命令。

7.3 - 监控磁盘空间

# Python脚本,用于监控磁盘空间并在空间不足时发送警告

import psutil

def check_disk_space(minimum_threshold_gb):

  disk = psutil.disk_usage('/')
  free_space_gb = disk.free / (2**30) # 将字节转换为GB

  if free_space_gb < minimum_threshold_gb:
    
    # 在此处编写代码以发送警告(电子邮件、通知等)

    pass

说明:

这个Python脚本监视系统上的可用磁盘空间,如果低于指定阈值则发送警告。这对于磁盘空间的积极管理和避免因磁盘空间不足导致的数据丢失非常有用。

8. 网络自动化

8.1 - 检查网站状态

# Python脚本,用于检查网站状态

import requests

def check_website_status(url):

  response = requests.get(url)

  if response.status_code == 200:

    # 在此处编写代码以处理成功的响应

  else:

    # 在此处编写代码以处理不成功的响应

说明:

这个Python脚本通过向提供的URL发送HTTP GET请求来检查网站的状态。它有助于监控网站的可用性及其响应代码。

8.2 - 自动化FTP传输

# Python脚本,用于自动化FTP文件传输

from ftplib import FTP  

def ftp_file_transfer(host, username, password, local_file_path, remote_file_path):

  with FTP(host) as ftp:
    ftp.login(user=username, passwd=password)
    with open(local_file_path, 'rb') as f:
      ftp.storbinary(f'STOR {remote_file_path}', f)

说明:

这个Python脚本使用FTP协议自动化文件传输。它连接到FTP服务器,使用提供的凭据登录,并将本地文件上传到指定的远程位置。

8.3 - 网络设备配置

# Python脚本,用于自动化网络设备配置

from netmiko import ConnectHandler

def configure_network_device(host, username, password, configuration_commands):

  device = {
    'device_type': 'cisco_ios',  
    'host': host,
    'username': username,
    'password': password,
  }

  with ConnectHandler(device) as net_connect:
    net_connect.send_config_set(configuration_commands)

说明:

这个Python脚本使用netmiko库自动配置网络设备,如思科路由器和交换机。你可以提供一系列配置命令,脚本将在目标设备上执行它们。

9. 数据清理和转换

9.1 - 从数据中删除重复项

# Python脚本,用于从数据中删除重复项

import pandas as pd

def remove_duplicates(data_frame):

  cleaned_data = data_frame.drop_duplicates()

  return cleaned_data

说明:

这个Python脚本使用pandas从数据集中删除重复行。这是确保数据完整性和提高数据分析的简单有效的方法。

9.2 - 数据规范化

# 数据规范化的Python脚本

import pandas as pd

def normalize_data(data_frame):

  normalized_data = (data_frame - data_frame.min()) / (data_frame.max() - data_frame.min())

  return normalized_data

说明:

这个Python脚本使用最小-最大规范化技术对数据进行规范化。它将数据集中的值缩放到0到1范围内,使比较不同特征更容易。

9.3 - 处理缺失值

# Python脚本,用于处理数据中的缺失值

import pandas as pd

def handle_missing_values(data_frame):

  filled_data = data_frame.fillna(method='ffill')

  return filled_data

说明:

这个Python脚本使用pandas处理数据集中的缺失值。它使用向前填充方法用前一个非缺失值填充缺失值。

10. 自动化PDF操作

10.1 - 从PDF中提取文本

# Python脚本,用于从PDF中提取文本

import PyPDF2

def extract_text_from_pdf(file_path):

  with open(file_path, 'rb') as f:
    pdf_reader = PyPDF2.PdfFileReader(f)
    text = ''
    for page_num in range(pdf_reader.numPages):
      page = pdf_reader.getPage(page_num)
      text += page.extractText()

  return text

说明:

这个Python脚本使用PyPDF2库从PDF文件中提取文本。它读取PDF的每一页并将提取的文本编译成一个字符串。

10.2 - 合并多个PDF

# Python脚本,用于将多个PDF合并为一个PDF

import PyPDF2

def merge_pdfs(input_paths, output_path):

  pdf_merger = PyPDF2.PdfMerger()

  for path in input_paths:
    with open(path, 'rb') as f: 
      pdf_merger.append(f)

  with open(output_path, 'wb') as f:
    pdf_merger.write(f)

说明:

这个Python脚本将多个PDF文件合并为一个PDF文档。这对于合并独立的PDF报告、演示文稿或其他文档到一个连贯的文件很有用。

10.3 - 添加密码保护

# Python脚本,用于为PDF添加密码保护

import PyPDF2

def add_password_protection(input_path, output_path, password):

  with open(input_path, 'rb') as f:
    pdf_reader = PyPDF2.PdfFileReader(f)
    pdf_writer = PyPDF2.PdfFileWriter()
    for page_num in range(pdf_reader.numPages):
      page = pdf_reader.getPage(page_num)
      pdf_writer.addPage(page)
    pdf_writer.encrypt(password)
    with open(output_path, 'wb') as output_file:
      pdf_writer.write(output_file)

标签:脚本,python,自动化,Python,file,import,path,email
From: https://www.cnblogs.com/QQ-77Ly/p/17817646.html

相关文章

  • python初学者学习笔记-第七章-面向对象
    chapter7/面向对象7.1面向对象基础7.1.1定义类:同一类的属性和方法的集合;对象:类的实例化就是对象;7.1.2特征类的三大特性:封装,继承,和多态;封装封装就是将属性和方法相捆绑,形成一个整体;封装可以提高程序的简洁性和安全性;使用者只需调用程序的相关接口,不必关注程序的实现......
  • python实现STL模型文件体积表面积计算
    没有什么特殊的算法,直接用包,开箱即用fromstlimportmeshimportnumpyasnp#读取stl文件filename='./text.stl'mesh_data=mesh.Mesh.from_file(filename)xyz=(mesh_data.max_-mesh_data.min_)sizel=round(xyz[0]/10,2)sizew=round(xyz[1]/10,2)s......
  • python初学者学习笔记-第八章-模块和包
    chapter8/模块和包8.1.模块8.1.1模块简介类、函数、变量等,都可重复使用。为了方便调用,我们通常把他们放到Python文件之中。单个文件的代码阅读和调用都比较混乱。代码最好分开存储,相似功能的代码放在一起。模块可以帮助我们实现这样的功能。后缀为py的文件都是python的......
  • python ElementTree操作xml节点
    pythonElementTree操作xml节点,包括增删改查xml原文<Voucher><Id>967a198783d14835860574c697478156</Id><Remark>main摘要443344245567583384475</Remark><Delete>需要删除的节点1</Delete><DetailList><Det......
  • 简单实现Python采集B站视频
    我们今天要学习的是如何利用Python的requests库编写一个采集B站的小爬虫,都是一些很基础的内容,简单易学,没有什么太过复杂的东西,一起来看看吧。首先安装库:```bashpipinstallrequests```然后,我们可以开始编写爬虫程序:```pythonimportrequestsproxy_host='www.duoip.cn'proxy_......
  • Python采集抖音快手商户
    抖音快手不仅是一个短视频平台,而且也是当下很多商家争抢进场的热门电商平台,以下是一个用Python实现采集抖音快手的爬虫程序,用于采集抖音快手的商家,对于做竞品同行数据分析来说,一定非常不错的。```pythonimportrequestsfrombs4importBeautifulSoup#请求URLurl='https://ww......
  • Python和requests库结合采集豆瓣短评
    Python是一种常用的程序语言,今天我们就用Python和requests库结合,来写一个采集豆瓣短评的程序,非常的简单,一起来学学吧。```pythonimportrequestsfrombs4importBeautifulSoup#设置代理proxy=f'http://{proxy_host}:{proxy_port}'headers={'User-Agent':'Mozilla/5.......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-25-处理单选和多选按钮-中篇
    1.简介上一篇中宏哥讲解和介绍的单选框有点多,而且由于时间的关系,宏哥决定今天讲解和分享复选框的相关知识。2.什么是单选框、复选框?单选按钮一般叫raidobutton,就像我们在电子版的单选答题过程一样,单选只能点击一次,如果点击其他的单选,之前单选被选中状态就会变成未选中。单......
  • yarn : 无法加载文件 ***,因为在此系统上禁止运行脚本。
      关于这个问题,PowerShell脚本的执行有着严格的安全策略限制!只需要修改以下策略即可,“管理员身份启动”WindowsPowerShell修改执行策略,输入指令:set-ExecutionPolicyRemoteSigned,如下图:  再通过yarn执行打包构建项目工程就可以了!!!   翻译搜索复制......
  • python基础-数据类型及常用方法
    数字类型int:是整形,用来记录没有小数点的数字,例如:1、2、3、4等等age=18print(age)print(type(age))float:是浮点型,用来记录有小数点的数字,例如:12.3、100.001等money=88888.88print(money)print(type(money)) str:是字符串类型,用来记录描述性质的东西,例如......