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相对没那么简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值