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