You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅用Python内置包实现命令行传入CSV文件运行脚本

实现方案:用内置argparse库完成命令行CSV处理脚本

完全可以用Python内置的argparse库实现,它是标准库的一部分,不需要额外安装。下面是完整的可运行脚本示例,包含参数解析、CSV读写的基础框架,你可以根据实际需求填充数据处理逻辑:

import argparse
import csv

def read_csv(file_path):
    """读取CSV文件,返回列表形式的行数据"""
    rows = []
    with open(file_path, 'r', newline='', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        for row in reader:
            rows.append(row)
    return rows

def write_csv(file_path, headers, data):
    """将数据写入CSV文件"""
    with open(file_path, 'w', newline='', encoding='utf-8') as f:
        writer = csv.DictWriter(f, fieldnames=headers)
        writer.writeheader()
        writer.writerows(data)

def generate_team_report(input_data):
    """生成团队报告的逻辑,需根据实际需求实现"""
    # 示例:直接返回输入数据的前5行作为演示
    return input_data[:5]

def generate_product_report(input_data1, input_data2, input_data3):
    """生成产品报告的逻辑,需根据实际需求实现"""
    # 示例:合并三个输入的第一行数据作为演示
    combined = []
    if input_data1:
        combined.append(input_data1[0])
    if input_data2:
        combined.append(input_data2[0])
    if input_data3:
        combined.append(input_data3[0])
    return combined

if __name__ == "__main__":
    # 初始化参数解析器
    parser = argparse.ArgumentParser(description='处理CSV数据并生成团队/产品报告')
    
    # 添加输入文件参数
    parser.add_argument('-t', required=True, help='团队数据输入CSV文件路径')
    parser.add_argument('-p', required=True, help='产品数据输入CSV文件路径')
    parser.add_argument('-s', required=True, help='销售数据输入CSV文件路径')
    
    # 添加输出报告参数
    parser.add_argument('--team-report', required=True, help='团队报告输出CSV文件路径')
    parser.add_argument('--product-report', required=True, help='产品报告输出CSV文件路径')
    
    # 解析命令行参数
    args = parser.parse_args()
    
    # 读取所有输入CSV
    team_data = read_csv(args.t)
    product_data = read_csv(args.p)
    sales_data = read_csv(args.s)
    
    # 生成报告数据
    team_report_data = generate_team_report(team_data)
    product_report_data = generate_product_report(team_data, product_data, sales_data)
    
    # 写入输出CSV(需根据实际报告结构调整headers)
    # 假设团队报告和输入的团队数据结构一致
    if team_report_data:
        write_csv(args.team_report, team_report_data[0].keys(), team_report_data)
    
    # 假设产品报告需要自定义表头,这里示例用合并后的字段
    if product_report_data:
        all_headers = set()
        for row in product_report_data:
            all_headers.update(row.keys())
        write_csv(args.product_report, list(all_headers), product_report_data)

使用说明

直接用你指定的命令格式运行即可:

python code.py -t input1.csv -p input2.csv -s input3.csv --team-report=output1.csv --product-report=output2.csv

注意事项

  • generate_team_report和generate_product_report函数是占位逻辑,你需要替换成自己的业务处理代码,比如数据聚合、统计等
  • CSV读写部分使用了csv.DictReader和csv.DictWriter,方便按列名处理数据,如果你需要按索引处理,可以换成csv.reader和csv.writer

内容的提问来源于stack exchange,提问作者john smidt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:22:53