Python自动化之复习基础
本文将从多个方面对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基础知识,掌握相关的自动化操作技巧,提升开发效率。