本文将从多个方面对Python自动化之复习基础进行详细阐述,旨在帮助读者巩固Python基础知识,并学习如何运用Python进行自动化开发。
一、Python基础知识回顾
1、变量和数据类型
<!-- coding:utf-8 -->
# 声明一个整型变量
age = 18
# 声明一个字符串变量
name = "Alice"
# 声明一个浮点型变量
height = 1.75
2、流程控制
<!-- coding:utf-8 -->
# if语句
score = 80
if score >= 60:
print("及格")
else:
print("不及格")
# for循环
for i in range(1, 10):
print(i)
# while循环
count = 0
while count < 5:
print(count)
count += 1
3、函数和模块
<!-- coding:utf-8 -->
# 声明一个函数
def add(a, b):
return a + b
# 导入模块
import math
# 使用模块中的函数
print(math.sqrt(25))
二、文件操作与处理
1、读取文件
<!-- coding:utf-8 -->
# 打开文件
file = open("test.txt", "r")
# 读取文件内容
content = file.read()
# 关闭文件
file.close()
print(content)
2、写入文件
<!-- coding:utf-8 -->
# 打开文件
file = open("test.txt", "w")
# 向文件写入内容
file.write("Hello, World!")
# 关闭文件
file.close()
3、文件处理
<!-- coding:utf-8 -->
# 逐行读取文件
file = open("test.txt", "r")
for line in file:
print(line)
file.close()
# 删除文件
import os
os.remove("test.txt")
三、网页自动化
1、使用selenium实现自动化网页操作
<!-- coding:utf-8 -->
from selenium import webdriver
# 创建浏览器对象
browser = webdriver.Chrome()
# 打开网页
browser.get("https://www.baidu.com/")
# 在搜索框中输入关键词
search_box = browser.find_element_by_id("kw")
search_box.send_keys("Python自动化")
# 点击搜索按钮
search_button = browser.find_element_by_id("su")
search_button.click()
# 关闭浏览器
browser.quit()
2、使用beautifulsoup解析网页内容
<!-- coding:utf-8 -->
from bs4 import BeautifulSoup
import requests
# 发送请求获取网页内容
url = "https://www.baidu.com/"
response = requests.get(url)
html = response.text
# 解析网页内容
soup = BeautifulSoup(html, "html.parser")
# 获取网页中的标题
title = soup.title.string
print(title)
3、使用requests模拟登录网站
<!-- coding:utf-8 -->
import requests
# 创建会话对象
session = requests.session()
# 发送登录请求
login_data = {
"username": "admin",
"password": "123456"
}
response = session.post("https://www.example.com/login", data=login_data)
# 发送其他请求获取登录后的内容
response = session.get("https://www.example.com/profile")
print(response.text)
四、任务调度与定时执行
1、使用schedule库实现任务调度
<!-- coding:utf-8 -->
import schedule
import time
# 定义一个任务
def task():
print("Task executed!")
# 每隔5秒执行一次任务
schedule.every(5).seconds.do(task)
while True:
schedule.run_pending()
time.sleep(1)
2、使用APScheduler库实现定时执行
<!-- coding:utf-8 -->
from apscheduler.schedulers.blocking import BlockingScheduler
# 定义一个任务
def task():
print("Task executed!")
# 创建调度器对象
scheduler = BlockingScheduler()
# 每天中午12点执行任务
scheduler.add_job(task, 'cron', hour=12)
scheduler.start()
3、使用Python脚本实现定时任务
<!-- coding:utf-8 -->
import time
# 定义一个任务
def task():
print("Task executed!")
# 定时执行任务
while True:
# 判断当前时间是否符合执行条件
current_time = time.strftime("%H:%M", time.localtime())
if current_time == "12:00":
task()
time.sleep(60)
五、邮箱自动化
1、使用smtplib发送邮件
<!-- coding:utf-8 -->
import smtplib
from email.mime.text import MIMEText
# 邮件内容
message = MIMEText("Hello, World!", "plain", "utf-8")
message["From"] = "sender@example.com"
message["To"] = "receiver@example.com"
message["Subject"] = "Test Email"
# 发送邮件
smtp_server = "smtp.example.com"
smtp_port = 465
smtp_username = "username"
smtp_password = "password"
smtp_ssl = True
with smtplib.SMTP_SSL(smtp_server, smtp_port) as server:
server.login(smtp_username, smtp_password)
server.sendmail(smtp_username, [message["To"]], message.as_string())
2、使用imaplib接收邮件
<!-- coding:utf-8 -->
import imaplib
import email
# 邮箱登录
imap_server = "imap.example.com"
imap_port = 993
imap_username = "username"
imap_password = "password"
with imaplib.IMAP4_SSL(imap_server, imap_port) as server:
server.login(imap_username, imap_password)
server.select("INBOX")
# 搜索邮件
status, message_ids = server.search(None, "ALL")
for message_id in message_ids[0].split():
# 获取邮件内容
status, data = server.fetch(message_id, "(RFC822)")
raw_email = data[0][1]
email_message = email.message_from_bytes(raw_email)
# 获取发件人和主题
print("From:", email_message.get("From"))
print("Subject:", email_message.get("Subject"))
3、自动回复邮件
<!-- coding:utf-8 -->
import imaplib
from email.mime.text import MIMEText
# 邮箱登录
imap_server = "imap.example.com"
imap_port = 993
imap_username = "username"
imap_password = "password"
with imaplib.IMAP4_SSL(imap_server, imap_port) as server:
server.login(imap_username, imap_password)
server.select("INBOX")
# 搜索未回复的邮件
status, message_ids = server.search(None, "UNANSWERED")
for message_id in message_ids[0].split():
# 获取发件人和主题
status, data = server.fetch(message_id, "(BODY[HEADER.FIELDS (FROM SUBJECT)])")
email_message = email.message_from_bytes(data[0][1])
sender = email_message.get("From")
subject = email_message.get("Subject")
# 构造回复邮件
reply_message = MIMEText("Thank you for your email!", "plain", "utf-8")
reply_message["From"] = imap_username
reply_message["To"] = sender
reply_message["Subject"] = f"Re: {subject}"
# 发送回复邮件
server.append("INBOX", None, None, reply_message.as_bytes())
六、数据处理与分析
1、使用pandas读取和处理数据
<!-- coding:utf-8 -->
import pandas as pd
# 读取CSV文件
data = pd.read_csv("data.csv")
# 查看数据前5行
print(data.head())
# 数据预处理
data.dropna(inplace=True)
data["date"] = pd.to_datetime(data["date"])
data.set_index("date", inplace=True)
# 数据分析
print(data.describe())
2、使用matplotlib绘制数据可视化图表
<!-- coding:utf-8 -->
import matplotlib.pyplot as plt
# 绘制折线图
plt.plot([1, 2, 3, 4, 5], [1, 4, 9, 16, 25])
plt.xlabel("x")
plt.ylabel("y")
plt.title("Line Chart")
plt.show()
3、使用numpy进行数据计算
<!-- coding:utf-8 -->
import numpy as np
# 创建NumPy数组
arr = np.array([1, 2, 3, 4, 5])
# 数组运算
print(np.mean(arr))
print(np.max(arr))
print(np.min(arr))
通过以上方面对Python自动化之复习基础的阐述,希望能够帮助读者巩固Python基础知识,掌握相关的自动化操作技巧,提升开发效率。