Python 课程12-Python 自动化应用

news2024/11/24 2:13:17

前言

        Python 自动化应用 可以帮助开发者节省时间和精力,将重复性、手动操作变为自动化脚本。例如,Python 可以用于自动化处理文件、邮件、生成报表,甚至可以控制浏览器执行复杂的网页操作任务。借助 Python 的强大库和工具,可以轻松地实现这些自动化任务。

        在本教程中,我们将介绍如何使用 Python 自动化处理日常任务,包括文件操作、发送邮件和生成报表等。我们还将展示如何使用 Selenium 进行网页操作自动化,帮助你实现浏览器自动化任务,如自动登录、表单提交等。


目录

  1. Python 自动化文件与报表处理

    • 自动化处理文件(文件读写、复制、删除)
    • 使用 Python 生成 Excel 报表
    • 自动化生成 PDF 报告
    • 使用 smtplib 自动化发送邮件
  2. 使用 Selenium 进行网页操作自动化

    • 什么是 Selenium?
    • 安装与设置 Selenium
    • 自动化浏览器操作(打开网页、点击、表单填写)
    • 自动化抓取网页内容
    • 示例:使用 Selenium 自动登录网站

1. Python 自动化文件与报表处理

自动化处理文件(文件读写、复制、删除)

Python 的 osshutil 模块允许我们自动化处理文件和文件夹,例如创建、读取、复制、移动和删除文件。

文件读写:

# 打开并读取文件
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

# 写入文件
with open('output.txt', 'w') as file:
    file.write("This is an automated message.")

复制、移动和删除文件:

import shutil
import os

# 复制文件
shutil.copy('example.txt', 'backup_example.txt')

# 移动文件
shutil.move('backup_example.txt', 'folder/backup_example.txt')

# 删除文件
os.remove('folder/backup_example.txt')

使用 Python 生成 Excel 报表

openpyxl 是一个常用的 Python 库,用于操作 Excel 文件,适合用于生成自动化的 Excel 报表。

安装 openpyxl:

pip install openpyxl

生成 Excel 文件:

from openpyxl import Workbook

# 创建一个新的 Excel 文件
wb = Workbook()
ws = wb.active

# 添加标题行
ws.append(['Name', 'Age', 'Salary'])

# 添加数据行
data = [
    ['Alice', 30, 50000],
    ['Bob', 24, 40000],
    ['Charlie', 29, 45000]
]

for row in data:
    ws.append(row)

# 保存 Excel 文件
wb.save('report.xlsx')

自动化生成 PDF 报告

可以使用 reportlab 库自动生成 PDF 文件。

安装 reportlab:

pip install reportlab

生成 PDF 文件:

from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

# 创建 PDF 文件
c = canvas.Canvas("report.pdf", pagesize=letter)
c.drawString(100, 750, "Automated PDF Report")
c.drawString(100, 720, "Name: Alice")
c.drawString(100, 700, "Salary: $50,000")
c.save()

使用 smtplib 自动化发送邮件

smtplib 库允许我们通过 SMTP 协议发送电子邮件。

自动发送电子邮件:

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

def send_email():
    sender_email = "your_email@gmail.com"
    receiver_email = "receiver_email@gmail.com"
    password = "your_password"

    message = MIMEMultipart("alternative")
    message["Subject"] = "Automated Email"
    message["From"] = sender_email
    message["To"] = receiver_email

    # 邮件内容
    text = "This is an automated email."
    part1 = MIMEText(text, "plain")
    message.attach(part1)

    # 连接到 Gmail SMTP 服务器
    server = smtplib.SMTP_SSL("smtp.gmail.com", 465)
    server.login(sender_email, password)
    server.sendmail(sender_email, receiver_email, message.as_string())
    server.quit()

send_email()

        你需要在上面的代码中替换 your_email@gmail.comyour_password,并确保你的邮箱设置允许通过 SMTP 发送邮件。


2. 使用 Selenium 进行网页操作自动化

什么是 Selenium?

Selenium 是一个强大的自动化工具,可以用于控制浏览器执行各种操作,如打开网页、填写表单、点击按钮、抓取网页内容等。它适用于网页测试,也可以用于自动化网页操作任务。

安装与设置 Selenium

安装 Selenium:

pip install selenium

下载浏览器驱动(例如 ChromeDriver):

  • 访问 ChromeDriver 下载页面,下载与你的 Chrome 版本匹配的驱动程序。
  • 解压并将 chromedriver 文件路径添加到系统环境变量中。

自动化浏览器操作(打开网页、点击、表单填写)

使用 Selenium 打开网页并进行简单的操作:

from selenium import webdriver
from selenium.webdriver.common.by import By

# 设置 Chrome 浏览器
driver = webdriver.Chrome()

# 打开网页
driver.get("https://www.example.com")

# 查找元素并进行点击操作
element = driver.find_element(By.XPATH, '//*[@id="submit-button"]')
element.click()

# 填写表单
input_box = driver.find_element(By.NAME, 'username')
input_box.send_keys("your_username")

# 关闭浏览器
driver.quit()

自动化抓取网页内容

Selenium 也可以用于自动化抓取网页数据,例如获取网页上的文本或链接。

# 打开网页
driver.get("https://www.example.com")

# 抓取网页标题
title = driver.title
print(f"Page title is: {title}")

# 抓取特定元素的文本
element = driver.find_element(By.CSS_SELECTOR, 'h1')
print(f"Page heading: {element.text}")

示例:使用 Selenium 自动登录网站

以下是一个通过 Selenium 自动登录网站的示例(以 GitHub 为例):

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

# 启动 Chrome 浏览器
driver = webdriver.Chrome()

# 打开 GitHub 登录页面
driver.get("https://github.com/login")

# 输入用户名
username = driver.find_element(By.ID, "login_field")
username.send_keys("your_username")

# 输入密码
password = driver.find_element(By.ID, "password")
password.send_keys("your_password")

# 提交登录表单
password.send_keys(Keys.RETURN)

# 等待页面加载并获取当前页面 URL
driver.implicitly_wait(10)  # 设置隐式等待
print(f"Current URL: {driver.current_url}")

# 关闭浏览器
driver.quit()

        此示例中,Selenium 控制 Chrome 浏览器打开 GitHub 登录页面,自动输入用户名和密码并提交表单,完成自动登录。


结论

        通过本教程,我们展示了如何使用 Python 自动化处理文件、生成 Excel 和 PDF 报告,以及通过 smtplib 发送自动化邮件。我们还深入探讨了 Selenium 在网页操作自动化中的应用,展示了如何自动登录网站、抓取网页内容以及进行浏览器交互。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes 常用指令2

kubernetes 常用命 令 1. 编写 yaml 文件 2. kubectl create 通过配置文件名或标准输入创建一个集群资源对象,支 持 json 和 yaml 格式的文件 语法: kubectl create -f 文件名 kubectl create deployment 资源名 --image镜像名 kubectl create deplo…

视频格式转为mp4(使用ffmpeg)

1、首先安装ffmpeg,下载链接如下 https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1.1-full_build.7z 安装后确保ffmpeg程序加到PATH路径里,cmd执行ffmpeg -version出现下图内容表示安装成功。 2、粘贴下面的脚本到文本文件中,文件后缀…

【Linux进程控制】进程创建|终止

目录 一、进程创建 fork函数 写时拷贝 二、进程终止 想明白:终止是在做什么? 进程退出场景 常见信号码及其含义 进程退出的常见方法 正常终止与异常终止 exit与_exit的区别 一、进程创建 fork函数 在Linux中fork函数是非常重要的函数&#x…

魔方财务升级指南

本文将详细介绍如何升级魔方财务系统,确保您能够顺利地更新到最新版本。 重要提示 在进行任何系统升级之前,请务必备份数据。这是良好的习惯,也是我们的建议。 备份数据库,并下载到本地。最好将网站目录文件打包,并…

【最新华为OD机试E卷-支持在线评测】最长连续子序列(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

沉浸式利用自然语言无代码开发工具生成式AI产品应用(上)

背景 小伙伴们过去在开发应用时,经常需要编写大量代码文件以实现业务逻辑,想必肯定有小伙伴开发过类似于快消行业索赔处理、订单库存跟踪和项目审批等系统。去解决这些业务实际问题,我们需要定制地开发业务应用程序为这些问题提供解决方案。…

S100A9:鸡支原体感染中的免疫调控“双面间谍”【AbMole】

在生物学研究的广阔天地里,总有一些分子扮演着令人意想不到的角色。今天,我们要探索的主角是S100A9蛋白,一种在鸡支原体感染过程中展现出惊人双重功能的分子。这项来自华中农业大学动物科技学院与兽医学院的最新研究成果,揭示了S1…

(一)springboot2.6.13+mybatis-plus3.5.3.1+shardingsphere4.0.0-RC2

1,POM配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…

【Mac】系统环境配置

常用工具 Navicat PJ版本&#xff1a;this Host切换器 SwitchHosts termius 一款好用的Linux服务器连接工具&#xff1a; termius 小飞机 dddd&#xff1a;&#x1fa9c; Git mac安装git有好多种方式&#xff0c;自带的xcode或者通过Homebrew来安装&#xff0c;本文的…

文心一言 VS 讯飞星火 VS chatgpt (348)-- 算法导论23.2 7题

七、假定图G的一棵最小生成树已经被计算出来。如果在图中加入一个新结点及其相关的新边&#xff0c;我们需要多少时间来对最小生成树进行更新&#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在图中加入一个新节点及其相关边后&#xff0c;要更新最小…

【计算机毕设-大数据方向】基于Hadoop的在线教育平台数据分析可视化系统的设计与实现

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 【联系方式】&#x1f447;&#x1f447;&#x1f447;最下边&#x1f447;&#x1f447;&…

QGis二次开发 —— 3、程序加载栅格tif与矢量shp文件可进行切换控制,可进行导出/导入工程(附源码)

效果 功能说明 软件可同时加载.tif栅格图片与.shp矢量图片、加载图片后可进行自由切换查看图层、可对加载的图片进行关闭 关闭后清空图层、可对加载的图片进行导出.qgs的QGIS工程、可对.qgs的QGis工程导入并导入后可进行自由切换查看图层。 源码 注意: 在加载tif栅格文件后会在…

类和对象补充

const 成员函数 const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后面。 void Print() const { cout << _year << "-" << _month << "-" << _day << endl; } 为什么要…

SpringDoc介绍

一、SpringDoc 官方文档 1.1何为SpringDoc SpringDoc是一个用来自动生成API文档的库。它是基于SpringBoot项目的&#xff0c;遵循OpenAPI3(一个组织规定的规范)规范。它是通过检查我们运行中的程序&#xff0c;推断出基于Spring配置、类结构和各种注解的API语义&#xff0c;从…

介绍一些免费 的 html 5模版网站 和配色 网站

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、H5 网站介绍网站 二、配色网站个人推荐 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、H5 网站介绍 以下是一些提供免费…

系统优化工具 | TweakPower v2.0.6 绿色版

TweakPower 是一款专业的系统优化工具&#xff0c;它为Windows用户提供了全面的系统性能提升解决方案。这款软件通过精细调整系统设置&#xff0c;包括注册表项&#xff0c;来显著提高电脑的运行速度和整体性能。 全面优化&#xff1a;提供内存管理、垃圾清理、数据备份、硬盘…

从 Prompt 工程看职场PUA!明明是模型缺陷,为啥要 Prompt 雕花?

简介 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖豆沙饼的小女孩。在当今的人工智能领域&#xff0c;Prompt 工程已被视为一项重要技能。然而&#xff0c;这一趋势也揭示了当前模型的不足&#xff1a;一个强大的模型应当能够直接理解用户明…

20240916 每日AI必读资讯

超强o1模型智商已超120&#xff01;1小时写出NASA博士1年代码&#xff0c;最新编程赛超越99.8%选手 - 一位UCI物理学博士实测o1&#xff0c;发现自己用时1年完成的博士论文代码&#xff0c;竟被AI在1个小时之内实现了。 - o1在最新门萨智商测试中&#xff0c;IQ水平竟超过了1…

Fish Speech - 新的 TTS 解决方案

文章目录 一、关于 Fish Speech架构Fish Speech V1.1 技术介绍[视频] 二、配置1、Linux 配置2、Docker 配置 三、快速开始1、设置For Windows User / win用户For Linux User / Linux 用户 2、准备模型3、WebUI Inference 四、Break-down CLI Inference1、从语音生成 prompt:2、…

鸿蒙开发之ArkTS 基础四 函数

函数 function 是可以重复使用的代码块 提高开发效率 &#xff0c;例如下面代码: 我需要执行无变&#xff0c;最方便的就是封装到一个方法里面 然后调用五次 fn()方法即可 如图&#xff1a; 函数的步骤是先定义函数 然后使用函数 定义的语法格式是: function 函数名字(){ 函…