如何从Mac终端直接调用Python脚本中的指定函数?
如何从终端直接调用Python脚本中的指定函数
完全可以实现这种调用方式,而且确实比交互式选择更高效。核心思路是通过读取终端传入的命令行参数,匹配脚本中对应的函数并执行。下面是两种常用的实现方案:
基础方案:用sys模块处理简单参数
适合功能较少、参数简单的脚本,代码简洁直观:
import sys # 定义你的业务函数 def sync_data(): print("正在执行数据同步逻辑...") def generate_report(): print("正在生成报表...") def main(): # 检查参数数量是否正确 if len(sys.argv) != 2: print("用法: python3 your_script.py <函数名>") print("可用函数: sync_data, generate_report") sys.exit(1) target_func = sys.argv[1] # 用字典建立函数名和函数的映射,比一堆if-elif更清爽 func_mapping = { "sync_data": sync_data, "generate_report": generate_report } if target_func in func_mapping: func_mapping[target_func]() else: print(f"错误: 不存在名为 {target_func} 的函数") print("可用函数: sync_data, generate_report") sys.exit(1) if __name__ == "__main__": main()
使用方式
在终端直接运行:
python3 your_script.py sync_data
就会执行sync_data函数;运行python3 your_script.py generate_report则执行报表生成逻辑。
进阶方案:用argparse处理复杂参数
如果你的函数需要接收额外参数,或者需要更友好的命令行帮助提示,推荐用Python内置的argparse模块:
import argparse def sync_data(source, target): print(f"从 {source} 同步数据到 {target}...") def generate_report(output_path, format="pdf"): print(f"生成{format}格式报表,保存到 {output_path}...") def main(): # 创建参数解析器 parser = argparse.ArgumentParser(description="脚本功能入口") # 添加子命令(对应不同函数) subparsers = parser.add_subparsers(dest="command", required=True, help="可选的函数命令") # 为sync_data添加子命令和参数 sync_parser = subparsers.add_parser("sync_data", help="执行数据同步") sync_parser.add_argument("source", help="数据源路径") sync_parser.add_argument("target", help="目标路径") # 为generate_report添加子命令和可选参数 report_parser = subparsers.add_parser("generate_report", help="生成报表") report_parser.add_argument("output_path", help="报表保存路径") report_parser.add_argument("--format", choices=["pdf", "excel"], default="pdf", help="报表格式,默认pdf") # 解析命令行参数 args = parser.parse_args() # 根据子命令调用对应函数 if args.command == "sync_data": sync_data(args.source, args.target) elif args.command == "generate_report": generate_report(args.output_path, args.format) if __name__ == "__main__": main()
使用方式
- 调用带参数的函数:
python3 your_script.py sync_data ./data/source ./data/target
- 使用可选参数:
python3 your_script.py generate_report ./reports/ --format excel
- 查看帮助信息:
python3 your_script.py -h # 查看特定函数的帮助 python3 your_script.py generate_report -h
内容的提问来源于stack exchange,提问作者Steven Diffey
相关产品推荐
相关产品推荐

