当前位置: 首页 > news >正文

python fire 库与 sys.argv 处理命令行参数

fire库

Python Fire 由Google开发,它使得命令行接口(CLI)的创建变得容易。使用Python Fire,可以将Python对象(如类、函数或字典)转换为可以从终端运行的命令行工具。这能够以一种简单而直观的方式与你的Python代码交互,而无需编写大量的命令行解析代码。

在命令行使用指令:

python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn

其中get_data.py文件如下,GetData是导入的类对象,qlib_data是GetData中的函数。

使用fire库的程序文件可以参照以下范式,用if __name__ == "__main__"包含fire.Fire()来供命令行调用,并传参给getdata

import fire
from qlib.tests.data import GetData


if __name__ == "__main__":
    fire.Fire(GetData)

fire库自动地将类 GetData 转换为命令行接口。你只需要将类传递给 fire.Fire(),它会自动处理命令行参数(在这里是target_dir 和 region)并调用类的方法。

 def qlib_data(
        self,
        name="qlib_data",
        target_dir="~/.qlib/qlib_data/cn_data",
        version=None,
        interval="1d",
        region="cn",
        delete_old=True,
        exists_skip=False,
    ):

sys.argv

在本例中import sys后,sys.argv列表解析命令行为,可以看见sys.argv[0]是脚本名称或路径,后面分别是位置参数和关键字参数相关信息。

['scripts/get_data.py', 'qlib_data', '--target_dir', '~/.qlib/qlib_data/cn_data', '--region', 'cn']

相比于fire库进行直接解析为类中函数对象的调用形式,sys.argv相对没那么简洁。

相关文章:

  • 【前缀和与差分 C/C++】洛谷 P8218 求区间和
  • MR 3. 多组学与孟德尔随机化分析揭示动脉粥样硬化性心血管疾病的潜在治疗靶点...
  • 相机几何:从三维世界到二维图像的映射
  • AVL树
  • 【C++】6.1.1 局部对象
  • 操作系统知识点23
  • 【语料数据爬虫】Python爬虫|批量采集会议纪要数据(1)
  • Spring Cloud之注册中心之Nacos负载均衡
  • 【二】JavaScript能力提升---this对象
  • 烧结银遇上HBM:开启存储新时代
  • HTML 文本格式化
  • Docker 学习笔记:从入门到部署,实战演练全流程!
  • SpringBoot 自定义异常处理
  • 【HarmonyOS Next】鸿蒙加固方案调研和分析
  • 祝福语【算法赛】
  • ESP32驱动OV3660摄像头实现物体轮廓识别(摄像头支持红外夜视、边缘AI计算)
  • C++常用函数
  • SpringBoot统一响应类型3.1.1版本
  • 初识大模型——大语言模型 LLMBook 学习(一)
  • 计算机网络传输层
  • 做网站哪个公司最/友博国际个人中心登录
  • 网站建设排行/百度搜索资源平台token
  • 为什么做网站特效用用插件/网络营销方法和手段
  • 越南网购网站/360手机优化大师下载
  • 瑞安商城网站建设/最新热点新闻
  • 干零活一天一结的平台/优化设计卷子答案