本文将从多个方面详细阐述Python自动化进阶的内容。
一、日志记录与分析
日志记录是软件开发和运维中非常重要的一环,Python提供了丰富的库和工具来实现日志记录和分析。
1、日志记录
import logging
logging.basicConfig(filename='app.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logging.info('This is an info message') # 记录一条信息级别的日志
logging.warning('This is a warning message') # 记录一条警告级别的日志
2、日志分析
import re
with open('app.log', 'r') as file:
logs = file.readlines()
for log in logs:
if re.search(r'warning', log.lower()):
print(log)
二、网络爬虫
Python是非常强大的网络爬虫开发语言,可以方便地通过各种库和框架进行网页内容的提取和分析。
1、网页内容提取
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.example.com')
soup = BeautifulSoup(response.text, 'html.parser')
# 提取标题
title = soup.find('title').text
print(title)
# 提取链接
links = [link.get('href') for link in soup.find_all('a')]
print(links)
2、数据存储
import csv
data = [
['name', 'age', 'gender'],
['Tom', '25', 'Male'],
['Jerry', '22', 'Female']
]
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
三、自动化测试
Python可以用于自动化测试,通过模拟用户行为或自动化脚本对软件进行测试。
1、模拟用户行为
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get('https://www.example.com')
username_input = driver.find_element_by_id('username')
password_input = driver.find_element_by_id('password')
login_button = driver.find_element_by_id('login')
username_input.send_keys('admin')
password_input.send_keys('password')
login_button.click()
2、自动化脚本
from unittest import TestCase, main
from myapp import add
class MyTestCase(TestCase):
def test_add(self):
result = add(2, 3)
self.assertEqual(result, 5)
if __name__ == '__main__':
main()
四、数据分析与可视化
Python在数据分析和可视化领域有着广泛应用,可以通过各种库和工具对数据进行处理和展示。
1、数据处理
import pandas as pd
data = {
'name': ['Tom', 'Jerry', 'Alice'],
'age': [25, 22, 30],
'gender': ['Male', 'Female', 'Female']
}
df = pd.DataFrame(data)
print(df.head())
2、数据可视化
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('Sample Plot')
plt.show()
五、任务调度与自动化
Python可以用于任务调度和自动化,通过编写脚本或使用相关工具,可以实现定时执行任务和自动化操作。
1、任务调度
import schedule
import time
def job():
print('Job executed at', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at('10:30').do(job)
while True:
schedule.run_pending()
time.sleep(1)
2、自动化操作
import os
os.chdir('/path/to/target/folder')
for file in os.listdir():
if file.endswith('.txt'):
os.remove(file)
六、机器学习与人工智能
Python在机器学习和人工智能领域被广泛使用,有着丰富的库和框架支持,可以方便地开发和部署机器学习模型。
1、机器学习模型训练
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
iris = datasets.load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3)
model = LogisticRegression()
model.fit(X_train, y_train)
2、模型部署
import joblib
from flask import Flask, request, jsonify
app = Flask(__name__)
model = joblib.load('model.pkl')
@app.route('/predict', methods=['POST'])
def predict():
data = request.get_json()
predictions = model.predict(data['input'])
return jsonify(predictions.tolist())
if __name__ == '__main__':
app.run()