当前位置:   article > 正文

10个常用Python自动化脚本_python脚本

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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

脚本用于在指定目录中搜索和删除空文件夹,维护干净整洁的文件夹结构,特别是在处理大量数据集时。

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

脚本允许同时批量重命名目录中的多个文件。它以旧名称和新名称作为输入,并将所有匹配的文件中的旧名称替换为新名称。

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')
  # 在此处编写代码,从网站中提取相关数据

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

脚本利用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() # 假设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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

脚本旨在从网站批量下载图片,它假设该网站提供一个返回图片URL数组的JSON API。该脚本然后遍历这些URL并下载图片,将其保存到指定的目录中。

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

脚本使用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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

脚本读取文本文件并统计其中包含的单词数,可以用于快速分析文本文档的内容,或跟踪写作项目中的字数。

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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

脚本在文件中搜索特定文本并将其替换为所需文本,它对批量替换大型文本文件中的某些短语或更正错误非常有用。

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

脚本能够向收件人列表发送个性化电子邮件,可以自定义发件人的电子邮件、密码、主题、正文以及收件人列表。请注意,出于安全考虑,使用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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

脚本允许发送带有附件的电子邮件,只需提供发件人的电子邮件、密码、收件人的电子邮件、主题、正文以及要附加的文件的路径即可。

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

脚本基于指定日期发送自动电子邮件提醒,对设置重要任务或事件的提醒非常有用,确保不会错过最后期限。

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) 

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

脚本使用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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

脚本使用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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

脚本合并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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

脚本允许连接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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

脚本是一个通用函数,用于在数据库上执行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)  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

脚本允许创建数据库的备份并在需要时进行恢复,是防止宝贵数据意外丢失的预防措施。

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

脚本使用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()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

脚本利用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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

45)]

[外链图片转存中…(img-OlKFQmr7-1713542850346)]

[外链图片转存中…(img-SS0KGlhB-1713542850347)]

[外链图片转存中…(img-i5MRVukT-1713542850347)]

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

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

闽ICP备14008679号