任务脚本生成

57 浏览
5 试用
0 购买
Aug 26, 2025更新

根据需求生成脚本,涵盖输入输出及约束说明

示例1

以下是实现需求的Python脚本,具体包括读取日志文件、解析日志内容、按日期汇总错误和警告信息的数量,并将30天内的统计结果导出为CSV格式的统计报告:

### Python 脚本
```python
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)
```

### 功能说明:
1. **日志解析**:
   - 使用正则表达式`(\d{4}-\d{2}-\d{2}).*(ERROR|WARNING)`,提取日志中的日期和日志级别信息。
   - 假设日志行格式中包含类似:`2023-10-01 INFO Some informational message` 或 `2023-10-01 ERROR An error occurred`。

2. **最近30天的过滤**:
   - 通过DateTime操作计算`最近30天`的日期范围,并过滤掉更早的日志。

3. **统计汇总**:
   - 使用Pandas的`groupby`进行按日期和日志级别统计。
   - 使用`unstack(fill_value=0)`确保未出现的级别补`0`。

4. **输出到CSV**:
   - 将按日期汇总的错误和警告计数输出为CSV文件,列名包括日期、ERROR和WARNING。

### 输入/输出文件:
- **输入**:日志文件路径:如`logs/app.log`,请根据实际文件调整路径和内容。
- **输出**:统计报告保存路径:如`reports/summary.csv`。

### 注意:
- 在运行脚本前,请确保已经安装`pandas`库。如未安装,请通过如下命令安装:
  ```bash
  pip install pandas
  ```
- 确保日志文件和输出目录已存在,若输出目录不存在需要提前创建(如`reports`目录)。
- 如果日志格式不同,可以适当调整正则表达式`log_pattern`以匹配具体的日志内容。

示例2

以下是一个完整的 JavaScript 脚本实现,该脚本使用 `axios` 获取页面数据,结合 `cheerio` 解析 HTML内容,并将包含页面标题和段落文字数据的 JSON 输出到本地文件。脚本还支持通过配置代理来抓取页面内容。

```javascript
// 导入必要的库
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);
```

### 脚本说明:
1. **依赖库**:
   - `axios`: HTTP 请求库,用于抓取网页内容。
   - `cheerio`: 用于解析和提取 HTML 文档中的内容。
   - `fs` 和 `path`: Node.js 自带的库,用于文件操作及路径管理。

2. **功能特性**:
   - 抓取指定 URL 页面。
   - 提取页面的标题(`<title>`)和所有段落内容(`<p>`)。
   - 以 JSON 格式保存到指定的本地文件。

3. **代理支持**:
   - 如果需要代理,可通过 `proxyConfig` 对象设置代理 `host` 和 `port`,并将 `useProxy` 设为 `true`。

4. **输入输出**:
   - **输入**:指定的 URL(`targetUrl`)。
   - **输出**:保存到本地 JSON 文件(默认路径为 `data/page_data.json`)。

5. **运行方法**:
   - 安装依赖:确保安装了 `axios` 和 `cheerio`,可以用以下命令安装:
     ```bash
     npm install axios cheerio
     ```
   - 执行脚本:
     ```bash
     node script.js
     ```
   注意将 `script.js` 替换为脚本文件的实际名称。

6. **输出 JSON 示例**:
   ```json
   {
     "title": "Example Page",
     "paragraphs": [
       "This is the first paragraph.",
       "This is the second paragraph.",
       "..."
     ],
     "url": "https://example.com/page"
   }
   ```

如果你有其他特定需求或想法,我们可以进一步扩展脚本功能。

示例3

以下是一个实现上述需求的Shell脚本:

```bash
#!/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
```

### 脚本说明:
1. **参数校验**:
   - 检查脚本是否接收了两个参数:本地目录路径 `local_directory_path` 和远程服务器路径 `remote_server_path`。

2. **日志记录**:
   - 使用 `tee` 记录日志到 `log.txt`,该日志包含压缩与上传过程的详细记录,便于排查问题。

3. **目录验证**:
   - 如果输入的本地目录不存在,则直接退出脚本并在日志中记录错误。

4. **压缩**:
   - 使用 `zip -r` 命令递归压缩指定目录内容为 `.zip` 文件,确保支持大于 1GB 的文件夹。

5. **上传**:
   - 使用 `scp` 命令将生成的 `.zip` 文件上传到远程服务器指定路径。

6. **本地清理**:
   - 成功上传后,删除本地生成的 `.zip` 文件以节省空间。

7. **日志文件**:
   - 日志文件 `log.txt` 始终记录脚本运行状态、错误及其他信息。

### 依赖:
- 需要本地安装 `zip` 和 `scp` 工具。
- 远程服务器需要支持 SCP 协议,并设置了必要的权限和连接。

### 调用方法:
```bash
./backup_and_upload.sh /home/user/data scp://10.0.0.1:/backups/
```

如果需要实现更加高级功能,如更加细粒度的进度显示或支持其他协议,可进一步扩展脚本逻辑。

适用用户

开发工程师

需要快速实现特定功能脚本的开发者,通过提示词一键生成高质量代码,节省大量时间和精力。

非技术背景的产品经理

借助提示词生成可用的脚本样例,用于原型验证或者传递具体需求,跨越技术沟通的障碍。

数据分析师

需要简单脚本来高效处理数据的用户,通过提示节省手动编码的时间,集中精力在数据分析上。

自动化运维人员

利用生成的脚本来编写日常运维任务工具,比如日志分析、批量操作等,优化自动化运维效率。

编程教学与学习者

想练习编程逻辑或快速获得参考实例的新手,通过提示词生成多样化代码,用于学习和提升技能。

解决的问题

帮助用户快速生成高质量的任务脚本,覆盖输入和输出方案设计,并明确操作约束,提升开发效率与准确性。

特征总结

根据需求快速生成脚本代码,支持多种编程语言,让任务自动化开发变得更高效。
智能读取用户提供的输入源信息,并根据场景生成定制化脚本,提高开发效率。
精准输出符合指定格式的代码内容,确保结果匹配业务需求,降低手动修改成本。
灵活适配多种约束条件,包括指定依赖库、限制条件或复杂参数配置,让生成脚本更加精准。
一键生成完整的脚本逻辑,涵盖输入、输出、流程控制等核心部分,减少代码框架搭建时间。
支持多场景需求脚本开发,从数据处理到业务流程自动化,助力用户快速实践创意。
降低技术壁垒,即便是不熟悉领域或新手开发者也能通过友好的提示创建实用脚本。
为复杂编程任务提供智能辅助,大幅缩短开发周期,提升代码编写质量。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

20 积分
平台提供免费试用机制,
确保效果符合预期,再付费购买!

您购买后可以获得什么

获得完整提示词模板
- 共 137 tokens
- 6 个可调节参数
{ 编程语言 } { 脚本目的与操作 } { 输入来源 } { 输出说明与格式 } { 输出目标 } { 特定约束 }
自动加入"我的提示词库"
- 获得提示词优化器支持
- 版本化管理支持
获得社区共享的应用案例
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59
摄影
免费 原价:20 限时
试用