当前位置: 首页 > article >正文

python中实用工具与自动化脚本

Python 是一门非常适合编写实用工具和自动化脚本的语言,因其简洁的语法和强大的库支持,Python 可以轻松处理各种日常任务,极大地提高工作效率。无论是文件操作、网络请求、批量处理数据,还是系统任务自动化,Python 都可以提供简便的解决方案。

一、Python 中的实用工具

Python 提供了许多内置的模块和第三方库,可以轻松编写实用工具来处理常见任务。

1.1 文件与目录操作

处理文件和目录是常见的任务,Python 的 osshutil 模块可以高效地操作文件系统。

  • 创建、删除、重命名文件和目录

    import os
    
    # 创建目录
    os.makedirs('my_folder/sub_folder', exist_ok=True)
    
    # 重命名文件
    os.rename('old_file.txt', 'new_file.txt')
    
    # 删除文件
    os.remove('new_file.txt')
    
    # 删除目录
    os.rmdir('my_folder/sub_folder')
    
  • 批量遍历文件夹

    for root, dirs, files in os.walk('my_folder'):
        for file in files:
            print(os.path.join(root, file))
    
1.2 文件读写

Python 提供了简单的文件读写方法,可以轻松处理文本和二进制文件。

  • 读取文件

    with open('file.txt', 'r') as file:
        content = file.read()
        print(content)
    
  • 写入文件

    with open('file.txt', 'w') as file:
        file.write("Hello, World!")
    
  • 逐行读取文件

    with open('file.txt', 'r') as file:
        for line in file:
            print(line.strip())
    
1.3 CSV 文件处理

CSV 是最常见的文件格式之一,Python 的 csv 模块可以方便地读取和写入 CSV 文件。

  • 读取 CSV 文件

    import csv
    
    with open('data.csv', 'r') as file:
        reader = csv.reader(file)
        for row in reader:
            print(row)
    
  • 写入 CSV 文件

    import csv
    
    data = [['Name', 'Age'], ['Alice', 30], ['Bob', 25]]
    with open('output.csv', 'w', newline='') as file:
        writer = csv.writer(file)
        writer.writerows(data)
    
1.4 JSON 文件处理

JSON 格式是网络数据传输的常见格式,Python 的 json 模块提供了对 JSON 数据的读写支持。

  • 读取 JSON 文件

    import json
    
    with open('data.json', 'r') as file:
        data = json.load(file)
        print(data)
    
  • 写入 JSON 文件

    import json
    
    data = {'name': 'Alice', 'age': 30}
    with open('output.json', 'w') as file:
        json.dump(data, file)
    

二、Python 中的自动化脚本

Python 作为自动化工具非常强大,能够自动化重复性任务、文件处理、网络操作、系统管理等。以下是一些常见的自动化任务和解决方案。

2.1 自动化办公任务

Python 可以使用第三方库来自动化处理 Excel、PDF 等常见办公文件,极大提高工作效率。

  • Excel 文件处理
    使用 openpyxl 库,可以读取、写入和修改 Excel 文件。

    pip install openpyxl
    
    • 读取 Excel 文件

      import openpyxl
      
      workbook = openpyxl.load_workbook('data.xlsx')
      sheet = workbook.active
      
      for row in sheet.iter_rows(values_only=True):
          print(row)
      
    • 写入 Excel 文件

      import openpyxl
      
      workbook = openpyxl.Workbook()
      sheet = workbook.active
      sheet['A1'] = 'Name'
      sheet['B1'] = 'Age'
      
      sheet.append(['Alice', 30])
      sheet.append(['Bob', 25])
      
      workbook.save('output.xlsx')
      
  • PDF 文件处理
    使用 PyPDF2 库,可以读取和操作 PDF 文件。

    pip install PyPDF2
    
    • 合并 PDF 文件
      import PyPDF2
      
      pdf_merger = PyPDF2.PdfMerger()
      pdf_merger.append('file1.pdf')
      pdf_merger.append('file2.pdf')
      
      with open('merged.pdf', 'wb') as output:
          pdf_merger.write(output)
      
2.2 网络请求与爬虫

Python 可以通过自动化脚本轻松处理网络请求,执行网络爬虫、批量下载等操作。

  • 网络请求处理
    使用 requests 库,可以轻松发送 HTTP 请求,自动化下载网页内容。

    pip install requests
    
    • 发送 GET 请求

      import requests
      
      response = requests.get('https://jsonplaceholder.typicode.com/posts')
      print(response.json())
      
    • 下载文件

      import requests
      
      url = 'https://example.com/file.zip'
      response = requests.get(url)
      
      with open('file.zip', 'wb') as file:
          file.write(response.content)
      
  • 自动化爬虫
    使用 BeautifulSoupSelenium,可以实现自动化的网页数据爬取。

    • 使用 BeautifulSoup 解析网页

      pip install beautifulsoup4
      
      import requests
      from bs4 import BeautifulSoup
      
      url = 'https://example.com'
      response = requests.get(url)
      soup = BeautifulSoup(response.content, 'html.parser')
      
      for link in soup.find_all('a'):
          print(link.get('href'))
      
    • 使用 Selenium 模拟浏览器操作

      pip install selenium
      
      from selenium import webdriver
      
      # 初始化浏览器
      driver = webdriver.Chrome()
      
      # 打开网页
      driver.get('https://www.example.com')
      
      # 查找元素并自动化操作
      search_box = driver.find_element_by_name('q')
      search_box.send_keys('Python Selenium')
      search_box.submit()
      
      # 关闭浏览器
      driver.quit()
      
2.3 系统自动化

Python 也可以用来执行系统任务自动化,如自动化备份、系统监控和调度任务。

  • 使用 subprocess 模块执行系统命令

    import subprocess
    
    # 执行系统命令
    result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
    print(result.stdout)
    
  • 自动化备份
    通过 Python,可以实现定时自动备份文件或数据库。

    import shutil
    
    source_folder = '/path/to/source'
    backup_folder = '/path/to/backup'
    
    # 复制文件夹
    shutil.copytree(source_folder, backup_folder)
    
2.4 定时任务自动化

使用 Python 的 schedule 库,可以轻松调度定时任务。

  • 安装 schedule

    pip install schedule
    
  • 编写定时任务脚本

    import schedule
    import time
    
    def job():
        print("每 5 秒执行一次任务")
    
    # 每 5 秒执行一次
    schedule.every(5).seconds.do(job)
    
    while True:
        schedule.run_pending()
        time.sleep(1)
    

三、自动化脚本示例:批量重命名文件

假设有一个文件夹,包含一系列文件,我们需要为每个文件添加统一的前缀。可以通过以下 Python 脚本批量处理这些文件。

批量重命名文件脚本
import os

def batch_rename(directory, prefix):
    # 获取目录下所有文件
    for filename in os.listdir(directory):
        old_path = os.path.join(directory, filename)
        
        # 只处理文件
        if os.path.isfile(old_path):
            new_filename = prefix + filename
            new_path = os.path.join(directory, new_filename)
            
            # 重命名文件
            os.rename(old_path, new_path)
            print(f"文件 {filename} 已重命名为 {new_filename}")

# 使用示例
batch_rename('/path/to/folder', 'new_prefix_')

四、自动化脚本示例:自动化邮件发送

使用 Python 可以编写脚本自动发送电子邮件,常用于发送定时报告或提醒。

自动发送邮件脚本
import smtplib
from

 email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email(subject, body, to_email):
    sender_email = "your_email@example.com"
    password = "your_password"

    # 创建邮件对象
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = to_email
    msg['Subject'] = subject

    # 邮件正文
    msg.attach(MIMEText(body, 'plain'))

    # 连接到 SMTP 服务器并发送邮件
    with smtplib.SMTP('smtp.example.com', 587) as server:
        server.starttls()
        server.login(sender_email, password)
        server.sendmail(sender_email, to_email, msg.as_string())
        print("邮件发送成功")

# 使用示例
send_email('测试邮件', '这是通过 Python 自动发送的邮件', 'recipient@example.com')

总结

Python 是编写实用工具和自动化脚本的理想语言,它提供了大量内置模块和第三方库,能够轻松完成文件操作、网络请求、系统任务、定时调度等自动化任务。通过合理利用 Python 的生态系统,可以快速构建各种自动化解决方案,极大地提高工作效率和开发体验。


http://www.kler.cn/news/318484.html

相关文章:

  • typename、非类型模板参数、模板参数的特化、模板类成员函数声明和定义分离、继承等的介绍
  • 滚雪球学SpringCloud[6.3讲]: 分布式日志管理与分析
  • 常见统计量与其抽样分布
  • python异步处理
  • [SDX35+WCN6856]SDX35 + WCN6856 WiFi 起来之后,使用终端连接会导致系统重启
  • dotnet4.0编译问题
  • 【系统架构设计师】专题:系统质量属性和架构评估
  • 康养为松,智能为鹤:华为全屋智能画出的松鹤长春图
  • 2024.9.24 数据分析
  • 努比亚z17努比亚NX563j原厂固件卡刷包下载_刷机ROM固件包下载-原厂ROM固件-安卓刷机固件网
  • 智慧城市主要运营模式分析
  • [附源码]宠物领养管理系统+SpringBoot
  • css实现居中的方法
  • C++ prime plus-4-编程练习
  • vue echarts tooltip使用动态模板
  • Web3技术在元宇宙中的应用:从区块链到智能合约
  • 搜维尔科技:手指舞测试Manus VR数据手套手指追踪功能
  • HtmlCss 基础总结(基础好了才是最能打的)五
  • 代码随想录算法训练营第二十八天| 122.买卖股票的最佳时机 II、55. 跳跃游戏、45.跳跃游戏 II、1005.K次取反后最大化的数组和
  • 线程知识点补充
  • uniapp map设置高度为100%后,会拉伸父容器的高度
  • 练习题 - Django 4.x Models Meta 元数据选项
  • C++类和对象(中)【下篇】
  • 考研数据结构——C语言实现插入排序
  • 2024百度的组织架构和产品分布
  • Java Collectors工具类
  • js进阶——词法作用域
  • 无人机蜂群作战会成为未来战争的主要形式吗,该如何反制呢?
  • 前端——阿里图标的使用
  • Qt窗口——对话框