如何仅用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
相关产品推荐
相关产品推荐

