Skip to content

Instantly share code, notes, and snippets.

View zh3389's full-sized avatar
🇨🇳

zhanghao zh3389

🇨🇳
View GitHub Profile
@zh3389
zh3389 / 自动化部署与回滚脚本.py
Created April 28, 2024 08:40
自动化部署与回滚脚本使用Fabric库编写SSH远程部署工具
from fabric import Connection
def deploy(host_string, user, password, project_path, remote_dir):
c = Connection(host=host_string, user=user, connect_kwargs={"password": password})
with c.cd(remote_dir):
c.run('git pull origin master') # 更新代码
c.run('pip install -r requirements.txt') # 安装依赖
c.run('python manage.py migrate') # 执行数据库迁移
c.run('python manage.py collectstatic --noinput') # 静态文件收集
@zh3389
zh3389 / 自动化性能测试.py
Created April 28, 2024 08:40
自动化性能测试使用Python的locust库进行API接口的压力测试。
from locust import HttpUser, task, between
class WebsiteUser(HttpUser):
wait_time = between(5, 15) # 定义用户操作之间的等待时间
@task
def load_test_api(self):
response = self.client.get("/api/data")
assert response.status_code == 200 # 验证返回状态码为200
@zh3389
zh3389 / 定时发送报告自动化.py
Created April 28, 2024 08:39
定时发送报告自动化根据数据库或文件内容,自动生成并定时发送日报/周报。
import pandas as pd
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def generate_report(source, to_addr, subject):
# 假设这里是从数据库或文件中获取数据并生成报告内容
report_content = pd.DataFrame({"Data": [1, 2, 3], "Info": ["A", "B", "C"]}).to_html()
msg = MIMEMultipart()
@zh3389
zh3389 / 邮件附件批量下载.py
Created April 28, 2024 08:38
邮件附件批量下载通过Python解析邮件,自动化下载所有附件。
import imaplib
import email
from email.header import decode_header
import os
def download_attachments(email_addr, password, imap_server, folder='INBOX'):
mail = imaplib.IMAP4_SSL(imap_server)
mail.login(email_addr, password)
mail.select(folder)
@zh3389
zh3389 / 数据可视化自动化.py
Created April 28, 2024 08:38
数据可视化自动化利用Matplotlib库,实现数据的自动图表生成。
import matplotlib.pyplot as plt
import pandas as pd
def visualize_data(data_file):
df = pd.read_csv(data_file)
# 示例:绘制柱状图
df.plot(kind='bar', x='category', y='value')
plt.title('数据分布')
plt.xlabel('类别')
@zh3389
zh3389 / 日志文件分析自动化.py
Created April 28, 2024 08:38
日志文件分析自动化通过Python解析日志文件,提取关键信息进行统计分析。
def analyze_log(log_file):
with open(log_file, 'r') as f:
lines = f.readlines()
error_count = 0
for line in lines:
if "ERROR" in line:
error_count += 1
print(f"日志文件中包含 {error_count} 条错误记录。")
@zh3389
zh3389 / 文件内容查找替换.py
Created April 28, 2024 08:37
文件内容查找替换Python脚本帮助你一键在多个文件中搜索并替换指定内容。
import fileinput
def search_replace_in_files(dir_path, search_text, replace_text):
for line in fileinput.input([f"{dir_path}/*"], inplace=True):
print(line.replace(search_text, replace_text), end='')
# 使用示例:
search_replace_in_files('/path/to/files', 'old_text', 'new_text')
@zh3389
zh3389 / 图片批量压缩.py
Created April 28, 2024 08:37
图片批量压缩用Python快速压缩大量图片以节省存储空间。
from PIL import Image
import os
def compress_images(dir_path, quality=90):
for filename in os.listdir(dir_path):
if filename.endswith(".jpg") or filename.endswith(".png"):
img = Image.open(os.path.join(dir_path, filename))
img.save(os.path.join(dir_path, f'compressed_{filename}'), optimize=True, quality=quality)
# 使用示例:
@zh3389
zh3389 / 数据清洗自动化.py
Created April 28, 2024 08:36
数据清洗自动化使用Pandas库,实现复杂数据处理和清洗的自动化。
import pandas as pd
def clean_data(file_path):
df = pd.read_csv(file_path)
# 示例:处理缺失值
df.fillna('N/A', inplace=True)
# 示例:去除重复行
df.drop_duplicates(inplace=True)
@zh3389
zh3389 / 网页内容自动化抓取.py
Created April 28, 2024 08:36
网页内容自动化抓取利用BeautifulSoup和requests库,编写Python爬虫获取所需网页信息。
import requests
from bs4 import BeautifulSoup
def fetch_web_content(url):
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
# 示例提取页面标题
title = soup.find('title').text
return title