热门角色不仅是灵感来源,更是你的效率助手。通过精挑细选的角色提示词,你可以快速生成高质量内容、提升创作灵感,并找到最契合你需求的解决方案。让创作更轻松,让价值更直接!
我们根据不同用户需求,持续更新角色库,让你总能找到合适的灵感入口。
根据需求生成脚本,涵盖输入输出及约束说明
以下是实现需求的Python脚本,具体包括读取日志文件、解析日志内容、按日期汇总错误和警告信息的数量,并将30天内的统计结果导出为CSV格式的统计报告:
import pandas as pd
import re
from datetime import datetime, timedelta
def process_logs(input_log_path, output_csv_path):
"""
处理日志文件并生成按日期汇总的错误和警告统计报告,包含最近30天的数据。
参数:
input_log_path (str): 日志文件的本地路径(如 logs/app.log)。
output_csv_path (str): 统计报告的输出路径(如 reports/summary.csv)。
"""
# 定义正则表达式匹配日期、错误和警告
log_pattern = re.compile(r'(\d{4}-\d{2}-\d{2}).*(ERROR|WARNING)')
# 初始化一个空列表存放日志记录
log_data = []
# 读取日志文件
with open(input_log_path, 'r', encoding='utf-8') as log_file:
for line in log_file:
# 使用正则表达式提取日志中的日期和错误/警告信息
match = log_pattern.search(line)
if match:
log_date = match.group(1) # 提取日期部分
log_level = match.group(2) # 提取日志级别 (ERROR/WARNING)
log_data.append((log_date, log_level))
# 将日志数据加载到DataFrame中
df = pd.DataFrame(log_data, columns=['date', 'level'])
# 将日期转换为datetime格式
df['date'] = pd.to_datetime(df['date'])
# 过滤出最近30天的数据
thirty_days_ago = datetime.now() - timedelta(days=30)
df_recent = df[df['date'] >= thirty_days_ago]
# 按日期和级别统计数量
summary = df_recent.groupby(['date', 'level']).size().unstack(fill_value=0)
# 确保列包含ERROR和WARNING,如果不存在则填充为0
if 'ERROR' not in summary.columns:
summary['ERROR'] = 0
if 'WARNING' not in summary.columns:
summary['WARNING'] = 0
# 重置索引并保存为CSV文件
summary = summary.reset_index()
summary.to_csv(output_csv_path, index=False)
print(f"统计报告已成功生成并保存在 {output_csv_path} 中。")
# 输入日志文件路径和输出CSV路径
input_log_path = "logs/app.log"
output_csv_path = "reports/summary.csv"
# 调用函数处理日志并生成统计报告
process_logs(input_log_path, output_csv_path)
日志解析:
(\d{4}-\d{2}-\d{2}).*(ERROR|WARNING),提取日志中的日期和日志级别信息。2023-10-01 INFO Some informational message 或 2023-10-01 ERROR An error occurred。最近30天的过滤:
最近30天的日期范围,并过滤掉更早的日志。统计汇总:
groupby进行按日期和日志级别统计。unstack(fill_value=0)确保未出现的级别补0。输出到CSV:
logs/app.log,请根据实际文件调整路径和内容。reports/summary.csv。pandas库。如未安装,请通过如下命令安装:
pip install pandas
reports目录)。log_pattern以匹配具体的日志内容。以下是一个完整的 JavaScript 脚本实现,该脚本使用 axios 获取页面数据,结合 cheerio 解析 HTML内容,并将包含页面标题和段落文字数据的 JSON 输出到本地文件。脚本还支持通过配置代理来抓取页面内容。
// 导入必要的库
const axios = require('axios'); // HTTP 请求库
const cheerio = require('cheerio'); // HTML 解析库
const fs = require('fs'); // 文件系统模块
const path = require('path'); // 路径模块
// 配置输入参数
const targetUrl = 'https://example.com/page'; // 要抓取的 URL
const outputFilePath = path.resolve(__dirname, 'data/page_data.json'); // 输出的 JSON 文件路径
const proxyConfig = {
// 如果需要代理,在此指定
useProxy: false, // 是否启用代理
proxy: {
host: '127.0.0.1', // 代理主机
port: 8080, // 代理端口
},
};
// 定义一个主函数
async function scrapeWebPage(url, outputFilePath) {
try {
// 配置 axios 请求选项
const axiosConfig = {
method: 'get',
url: url,
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
},
};
// 如果需要代理,则添加代理配置
if (proxyConfig.useProxy) {
axiosConfig.proxy = {
host: proxyConfig.proxy.host,
port: proxyConfig.proxy.port,
};
} else {
axiosConfig.proxy = false; // 禁用代理
}
// 发起 HTTP 请求
console.log(`正在抓取页面内容:${url}`);
const response = await axios(axiosConfig);
// 检查响应状态
if (response.status !== 200) {
throw new Error(`请求失败,状态码:${response.status}`);
}
// 解析 HTML 内容
const html = response.data;
const $ = cheerio.load(html);
// 提取所需信息
const pageTitle = $('title').text(); // 页面标题
const paragraphs = []; // 存储段落文本的数组
$('p').each((_, element) => {
paragraphs.push($(element).text().trim());
});
// 构造 JSON 数据
const pageData = {
title: pageTitle,
paragraphs: paragraphs,
url: url,
};
// 将 JSON 数据写入文件
fs.mkdirSync(path.dirname(outputFilePath), { recursive: true }); // 确保目录存在
fs.writeFileSync(outputFilePath, JSON.stringify(pageData, null, 2), 'utf-8'); // 写入 JSON 文件
console.log(`页面数据已成功抓取并保存到:${outputFilePath}`);
} catch (error) {
console.error(`发生错误:${error.message}`);
}
}
// 执行主函数
scrapeWebPage(targetUrl, outputFilePath);
依赖库:
axios: HTTP 请求库,用于抓取网页内容。cheerio: 用于解析和提取 HTML 文档中的内容。fs 和 path: Node.js 自带的库,用于文件操作及路径管理。功能特性:
<title>)和所有段落内容(<p>)。代理支持:
proxyConfig 对象设置代理 host 和 port,并将 useProxy 设为 true。输入输出:
targetUrl)。data/page_data.json)。运行方法:
axios 和 cheerio,可以用以下命令安装:
npm install axios cheerio
node script.js
注意将 script.js 替换为脚本文件的实际名称。
输出 JSON 示例:
{
"title": "Example Page",
"paragraphs": [
"This is the first paragraph.",
"This is the second paragraph.",
"..."
],
"url": "https://example.com/page"
}
如果你有其他特定需求或想法,我们可以进一步扩展脚本功能。
以下是一个实现上述需求的Shell脚本:
#!/bin/bash
# Shell脚本用于压缩指定目录并上传到指定的远程服务器
# 检查输入参数是否完整
if [ "$#" -ne 2 ]; then
echo "Usage: $0 <local_directory_path> <remote_server_path>"
exit 1
fi
LOCAL_DIRECTORY=$1
REMOTE_SERVER_PATH=$2
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
ZIP_FILE="backup_$TIMESTAMP.zip"
LOG_FILE="log.txt"
# 检查本地目录是否存在
if [ ! -d "$LOCAL_DIRECTORY" ]; then
echo "Error: Directory '$LOCAL_DIRECTORY' does not exist." | tee -a $LOG_FILE
exit 1
fi
# 压缩指定目录到ZIP文件
echo "Compressing directory $LOCAL_DIRECTORY to $ZIP_FILE..." | tee -a $LOG_FILE
zip -r $ZIP_FILE $LOCAL_DIRECTORY > /dev/null 2>> $LOG_FILE
if [ $? -ne 0 ]; then
echo "Error: Failed to compress $LOCAL_DIRECTORY. Check $LOG_FILE for details." | tee -a $LOG_FILE
exit 1
fi
echo "Compression completed successfully." | tee -a $LOG_FILE
# 上传压缩文件到远程服务器
echo "Uploading $ZIP_FILE to $REMOTE_SERVER_PATH..." | tee -a $LOG_FILE
scp $ZIP_FILE $REMOTE_SERVER_PATH 2>> $LOG_FILE
if [ $? -ne 0 ]; then
echo "Error: Failed to upload $ZIP_FILE to $REMOTE_SERVER_PATH. Check $LOG_FILE for details." | tee -a $LOG_FILE
exit 1
fi
echo "Upload completed successfully." | tee -a $LOG_FILE
# 清理本地生成的ZIP文件
echo "Cleaning up local files..." | tee -a $LOG_FILE
rm -f $ZIP_FILE
if [ $? -ne 0 ]; then
echo "Warning: Failed to delete local file $ZIP_FILE. Please remove it manually." | tee -a $LOG_FILE
else
echo "Cleanup completed successfully." | tee -a $LOG_FILE
fi
echo "Script execution finished. Check $LOG_FILE for the summary." | tee -a $LOG_FILE
exit 0
参数校验:
local_directory_path 和远程服务器路径 remote_server_path。日志记录:
tee 记录日志到 log.txt,该日志包含压缩与上传过程的详细记录,便于排查问题。目录验证:
压缩:
zip -r 命令递归压缩指定目录内容为 .zip 文件,确保支持大于 1GB 的文件夹。上传:
scp 命令将生成的 .zip 文件上传到远程服务器指定路径。本地清理:
.zip 文件以节省空间。日志文件:
log.txt 始终记录脚本运行状态、错误及其他信息。zip 和 scp 工具。./backup_and_upload.sh /home/user/data scp://10.0.0.1:/backups/
如果需要实现更加高级功能,如更加细粒度的进度显示或支持其他协议,可进一步扩展脚本逻辑。
帮助用户快速生成高质量的任务脚本,覆盖输入和输出方案设计,并明确操作约束,提升开发效率与准确性。
需要快速实现特定功能脚本的开发者,通过提示词一键生成高质量代码,节省大量时间和精力。
借助提示词生成可用的脚本样例,用于原型验证或者传递具体需求,跨越技术沟通的障碍。
需要简单脚本来高效处理数据的用户,通过提示节省手动编码的时间,集中精力在数据分析上。
将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。
把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。
在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。
免费获取高级提示词-优惠即将到期