×
¥
查看详情
🔥 会员专享 文生代码 工具

智能脚本生成

👁️ 481 次查看
📅 Aug 26, 2025
💡 核心价值: 以专家视角生成满足任务需求的完整脚本方案

🎯 可自定义参数(9个)

编程语言
编程语言名称,例如:Python、JavaScript、Java
任务目标描述
脚本的总体目标描述,例如:分析销售数据并生成可视化报表
步骤一
第一步操作说明,例如:读取名为data.txt的文件
步骤二
第二步操作说明,例如:按规则对数据进行清洗和处理
步骤三
第三步操作说明,例如:将结果以JSON格式输出到控制台
错误类型一
可选的错误类型一,例如:文件未找到错误
错误类型二
可选的错误类型二,例如:权限不足错误
参数一用途
可选的命令行参数一用途说明,例如:输入文件路径
参数二用途
可选的命令行参数二用途说明,例如:输出文件格式

🎨 效果示例

下面是一个Python脚本,使用PyMySQL库实现了连接远程数据库、执行SQL查询、格式化数据为CSV文件并处理潜在错误的需求。脚本支持通过命令行参数传入数据库账户信息文件路径和CSV保存路径。

先安装依赖库:

pip install pymysql

Python脚本代码

import pymysql
import csv
import argparse
import json
import sys


def load_db_credentials(file_path):
    """
    Load database connection credentials from a given JSON file.
    """
    try:
        with open(file_path, 'r') as file:
            credentials = json.load(file)
        return credentials
    except FileNotFoundError:
        print(f"Error: Credential file '{file_path}' not found.")
        sys.exit(1)
    except json.JSONDecodeError:
        print(f"Error: Unable to parse the JSON file '{file_path}'. Ensure it's valid.")
        sys.exit(1)


def connect_to_database(credentials):
    """
    Establish a connection to the database with error handling.
    """
    try:
        connection = pymysql.connect(
            host=credentials['host'],
            user=credentials['user'],
            password=credentials['password'],
            database=credentials['database'],
            port=credentials.get('port', 3306),  # Default port for MySQL is 3306
            cursorclass=pymysql.cursors.DictCursor
        )
        return connection
    except pymysql.MySQLError as e:
        print(f"Database connection error: {e}")
        sys.exit(1)


def execute_query(connection, query):
    """
    Execute the given SQL query and fetch results.
    """
    try:
        with connection.cursor() as cursor:
            cursor.execute(query)
            results = cursor.fetchall()
        return results
    except pymysql.MySQLError as e:
        print(f"SQL execution error: {e}")
        sys.exit(1)


def save_to_csv(data, output_file):
    """
    Save the query results to a CSV file.
    """
    try:
        if len(data) == 0:
            print("No data returned to save as CSV file.")
            sys.exit(0)

        # Extract headers from the keys of the first dictionary in the data list
        headers = data[0].keys()

        with open(output_file, mode='w', newline='', encoding='utf-8') as file:
            writer = csv.DictWriter(file, fieldnames=headers)
            
            # Write header row
            writer.writeheader()
            
            # Write data rows
            writer.writerows(data)

        print(f"Data successfully saved to {output_file}")
    except Exception as e:
        print(f"Error while saving CSV: {e}")
        sys.exit(1)


def main():
    # Set up argument parser
    parser = argparse.ArgumentParser(description="Connect to a database, execute an SQL query, and save results to a CSV file.")
    parser.add_argument("credentials", help="Path to JSON file with database connection credentials.")
    parser.add_argument("query", help="SQL query to execute.")
    parser.add_argument("output", help="Path to save the CSV file.")
    args = parser.parse_args()

    # Load database credentials
    credentials = load_db_credentials(args.credentials)

    # Connect to the database
    connection = connect_to_database(credentials)

    # Execute the SQL query
    results = execute_query(connection, args.query)

    # Close the database connection
    connection.close()

    # Save results to CSV
    save_to_csv(results, args.output)


if __name__ == "__main__":
    main()

功能说明

  1. 脚本参数:

    • credentials: 数据库连接信息保存为一个JSON文件,包含如下格式:
      {
          "host": "your_host",
          "user": "your_username",
          "password": "your_password",
          "database": "your_database",
          "port": 3306
      }
      
      port参数是可选的(默认为3306)。
    • query: 用于执行的SQL查询语句。
    • output: CSV文件保存路径。
  2. 脚本步骤:

    • 从用户指定的账户信息JSON文件加载数据库连接配置。
    • 使用PyMySQL库连接到MySQL数据库。
    • 执行SQL查询语句。
    • 查询数据并保存为CSV文件。
  3. 错误处理:

    • 捕获文件读取错误(如账户信息文件不存在或JSON语法错误)。
    • 数据库连接错误(如用户名密码错误,主机不可达)。
    • SQL语法错误或查询问题。
    • CSV文件写入过程中的错误。
  4. 运行方式: 使用如下命令运行:

    python script.py credentials.json "SELECT * FROM your_table WHERE condition" output.csv
    
  5. 可扩展性:

    • 可自行修改JSON文件中的键名或增加更多数据库配置。
    • 自定义数据过滤SQL语句。
    • 扩展支持其他数据库类型(通过替换PyMySQL库)。

示例

假设有以下SQL查询:

SELECT id, name, email FROM users WHERE status = 'active';

命令行运行示例:

python script.py db_credentials.json "SELECT id, name, email FROM users WHERE status = 'active'" active_users.csv

结果:保存查询到的id, name, email数据于active_users.csv

通过这份脚本,你可以快速实现远程数据库操作并生成CSV,非常适用于脚本化查询任务的场景。

以下是实现你需求的Python脚本,脚本包括基本功能(清洗数据并生成折线图)以及可选功能(支持命令行参数、处理错误等):

import pandas as pd
import matplotlib.pyplot as plt
import argparse
import os
from datetime import datetime

def clean_and_visualize_data(input_file, output_file):
    try:
        # 1. 读取数据文件
        print(f"Reading file: {input_file}")
        data = pd.read_csv(input_file)
        
        # 2. 去重处理
        print("Removing duplicates...")
        data.drop_duplicates(inplace=True)

        # 3. 日期字段规范化处理
        if 'date' not in data.columns or 'sales' not in data.columns:
            raise ValueError("The input data must contain 'date' and 'sales' columns.")

        print("Normalizing date column...")
        try:
            data['date'] = pd.to_datetime(data['date'])
        except Exception as e:
            raise ValueError(f"Error parsing column 'date': {e}")

        # 4. 按月汇总销售数据
        print("Aggregating sales data by month...")
        data['month'] = data['date'].dt.to_period('M').dt.to_timestamp()
        monthly_sales = data.groupby('month')['sales'].sum().reset_index()

        # 5. 生成销售趋势折线图
        print(f"Generating trend chart and saving to {output_file}...")
        plt.figure(figsize=(10, 6))
        plt.plot(monthly_sales['month'], monthly_sales['sales'], marker='o', linestyle='-', color='b', label='Monthly Sales')
        plt.title('Monthly Sales Trend')
        plt.xlabel('Month')
        plt.ylabel('Total Sales')
        plt.grid(True)
        plt.legend()
        plt.tight_layout()
        plt.savefig(output_file)

        print("Trend chart successfully saved.")
    
    except FileNotFoundError:
        print(f"Error: The file '{input_file}' was not found.")
    except pd.errors.EmptyDataError:
        print(f"Error: The file '{input_file}' is empty.")
    except ValueError as ve:
        print(f"Value Error: {ve}")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")

def main():
    # 设置命令行参数解析
    parser = argparse.ArgumentParser(description="Clean sales data and generate a monthly sales trend chart.")
    parser.add_argument('--input_file', type=str, default='sales_data.csv', help="Path to the input CSV file (default: sales_data.csv).")
    parser.add_argument('--output_file', type=str, default='trend_chart.png', help="Path to save the output trend chart image (default: trend_chart.png).")
    args = parser.parse_args()

    # 检查文件是否存在
    if not os.path.exists(args.input_file):
        print(f"Error: Input file '{args.input_file}' does not exist.")
        return

    # 调用主要清洗与可视化功能
    clean_and_visualize_data(args.input_file, args.output_file)

if __name__ == "__main__":
    main()

功能解读:

  1. 读取CSV文件

    • 默认文件名为sales_data.csv,支持通过--input_file参数指定文件路径。
    • 使用pandas.read_csv读取数据,带有错误处理,如文件不存在或数据为空。
  2. 数据去重与日期规范化

    • 去重:使用drop_duplicates清理重复的行。
    • 统一日期字段:尝试将date列解析为标准datetime格式。
  3. 按月汇总销售数据

    • 使用groupby对销售数据按月份进行汇总。
  4. 生成折线图

    • 使用matplotlib绘制图表,并保存为PNG文件(默认保存为trend_chart.png,支持通过--output_file指定路径)。
  5. 错误处理

    • 包含文件不存在、CSV为空、日期解析失败等错误类型的处理逻辑,保证脚本的健壮性。
  6. 命令行参数支持

    • 使用argparse构建更灵活的脚本,通过命令行接受用户指定的输入和输出路径。

脚本运行方式:

# 使用默认文件名和输出路径
python sales_trend.py 

# 指定输入和输出路径
python sales_trend.py --input_file=my_sales_data.csv --output_file=my_trend_chart.png

这个脚本通用性强,灵活可配置,并通过错误处理保证了稳定运行。请确保文件中包含必要字段(如datesales)。

以下是实现以上需求的Bash脚本:

#!/bin/bash

# 自动化分析服务器日志,提取错误信息

# 检查是否提供日志文件路径和汇总文件路径参数
if [ "$#" -lt 2 ]; then
  echo "Usage: $0 <log_file_path> <output_summary_path>"
  exit 1
fi

# 接收参数
LOG_FILE="$1"
OUTPUT_FILE="$2"

# 检查日志文件是否存在
if [ ! -f "$LOG_FILE" ]; then
  echo "Error: Log file <$LOG_FILE> not found!"
  exit 1
fi

# 创建/清空汇总文件
> "$OUTPUT_FILE"

# 提取包含错误关键字的日志信息并写入汇总文件
echo "Extracting error information from <$LOG_FILE>..."

grep -i "error" "$LOG_FILE" > "$OUTPUT_FILE"

if [ $? -eq 0 ]; then
  echo "Error information extracted successfully to <$OUTPUT_FILE>."
else
  echo "No errors found in <$LOG_FILE>."
fi

exit 0

脚本说明

  1. 参数传递:
    • 脚本第1步通过检查参数列表确定用户是否指定了日志文件路径和输出路径。如果未指定,将输出使用方法说明并退出程序。
  2. 错误处理:
    • 若日志文件路径不存在,脚本将检测到文件不存在并终止运行,提示用户。
  3. grep 命令:
    • 使用 grep -i "error" 忽略错误关键字大小写。
    • 提取的日志行直接写入指定的汇总文件。
  4. 灵活性:
    • 用户可以通过命令行指定任意日志文件路径和输出文件路径。

用法示例

假如该脚本命名为 log_analyzer.sh,则可以如下使用:

# 提取 /logs/error.log 中的错误信息到 error_summary.log
./log_analyzer.sh /logs/error.log ./error_summary.log

# 提取其他指定日志,比如 /var/logs/my_app.log 中的错误信息
./log_analyzer.sh /var/logs/my_app.log ./output_errors.log

测试与改进

  • 可以将脚本扩展为提取特定格式的错误信息(如日期、类别等),或者对错误内容统计。
  • 如果您需要更复杂错误类型处理或者日志格式解析,请提供详细需求,我将优化实现!

示例详情

📖 如何使用

30秒出活:复制 → 粘贴 → 搞定
与其花几十分钟和AI聊天、试错,不如直接复制这些经过千人验证的模板,修改几个 {{变量}} 就能立刻获得专业级输出。省下来的时间,足够你轻松享受两杯咖啡!
加载中...
💬 不会填参数?让 AI 反过来问你
不确定变量该填什么?一键转为对话模式,AI 会像资深顾问一样逐步引导你,问几个问题就能自动生成完美匹配你需求的定制结果。零门槛,开口就行。
转为对话模式
🚀 告别复制粘贴,Chat 里直接调用
无需切换,输入 / 唤醒 8000+ 专家级提示词。 插件将全站提示词库深度集成于 Chat 输入框。基于当前对话语境,系统智能推荐最契合的 Prompt 并自动完成参数化,让海量资源触手可及,从此彻底告别"手动搬运"。
即将推出
🔌 接口一调,提示词自己会进化
手动跑一次还行,跑一百次呢?通过 API 接口动态注入变量,接入批量评价引擎,让程序自动迭代出更高质量的提示词方案。Prompt 会自己进化,你只管收结果。
发布 API
🤖 一键变成你的专属 Agent 应用
不想每次都配参数?把这条提示词直接发布成独立 Agent,内嵌图片生成、参数优化等工具,分享链接就能用。给团队或客户一个"开箱即用"的完整方案。
创建 Agent

✅ 特性总结

以专家视角生成专业级脚本,快速满足任务需求,适用于多种编程语言和场景。
根据用户需求定制灵活、高效的脚本方案,覆盖从逻辑设计到可扩展实现的全流程。
轻松添加命令行参数支持,让脚本更具灵活性与可配置性,适配复杂应用场景。
智能处理潜在错误类型,为脚本稳健性和可靠性保驾护航,减少用户纠错成本。
按步骤输出清晰的代码逻辑规划,让用户一步步了解编程实现路径。
快速生成可复用的脚本模板,满足多场景、多任务需求,提升开发效率。
内置最佳实践与算法优化建议,让用户轻松产出高性能脚本解决方案。
支持多语言编写,无需切换工具即可满足跨语种脚本开发需求。
简化复杂任务脚本的编写过程,让编程新手也能快速上手并实现目标。
针对业务需求生成定制化代码,大幅缩短开发周期并提升工作质量。

🎯 解决的问题

帮助用户通过简单输入,快速生成满足任务需求的完整脚本,提高开发效率并降低编程难度。

🕒 版本历史

当前版本
v2.1 2024-01-15
优化输出结构,增强情节连贯性
  • ✨ 新增章节节奏控制参数
  • 🔧 优化人物关系描述逻辑
  • 📝 改进主题深化引导语
  • 🎯 增强情节转折点设计
v2.0 2023-12-20
重构提示词架构,提升生成质量
  • 🚀 全新的提示词结构设计
  • 📊 增加输出格式化选项
  • 💡 优化角色塑造引导
v1.5 2023-11-10
修复已知问题,提升稳定性
  • 🐛 修复长文本处理bug
  • ⚡ 提升响应速度
v1.0 2023-10-01
首次发布
  • 🎉 初始版本上线
COMING SOON
版本历史追踪,即将启航
记录每一次提示词的进化与升级,敬请期待。

💬 用户评价

4.8
⭐⭐⭐⭐⭐
基于 28 条评价
5星
85%
4星
12%
3星
3%
👤
电商运营 - 张先生
⭐⭐⭐⭐⭐ 2025-01-15
双十一用这个提示词生成了20多张海报,效果非常好!点击率提升了35%,节省了大量设计时间。参数调整很灵活,能快速适配不同节日。
效果好 节省时间
👤
品牌设计师 - 李女士
⭐⭐⭐⭐⭐ 2025-01-10
作为设计师,这个提示词帮我快速生成创意方向,大大提升了工作效率。生成的海报氛围感很强,稍作调整就能直接使用。
创意好 专业
COMING SOON
用户评价与反馈系统,即将上线
倾听真实反馈,在这里留下您的使用心得,敬请期待。
加载中...