• 技术文章 >Python技术 >Python基础教程

    怎么用python3顺序执行多个py文件?

    2020-11-07 14:44:20原创4311
    之前跟大家讲解过运行一个文件,但是大部分时候我们是不可能只运行一个文件的,那如果遇到需要运行多个文件的时候,我们需要怎么处理呢?今天,针对这个问题,着重给大家说下哦~一起来看下哈~

    Bash for Loop:使用不同的参数运行个文件

    如果我们想用不同的参数运行一个文件呢?例如,我们可能希望使用相同的脚本来使用不同的模型来预测数据。

    import joblib
     
    # df = ...
     
    model_path = 'model/model1/XGBoost/version_1'
    model = joblib.load(model_path)
    model.predict(df)

    如果一个脚本需要很长时间才能运行,而我们有多个模型要运行,那么等待脚本运行完毕然后运行下一个脚本将非常耗时。有没有一种方法可以告诉计算机用一个命令行运行1,2,3,10,然后去做其他的事情。

    是的,我们可以用for bash for loop。首先,我们使用系统argv使我们能够解析命令行参数。如果要覆盖命令行上的配置文件,也可以使用hydra等工具。

    import sys
    import joblib
     
    # df = ...
     
    model_type = sys.argv[1]
    model_version = sys.argv[2]
    model_path = f'''model/model1/{model_type}/version_{model_version}'''
    print('Loading model from', model_path, 'for training')
     
    model = joblib.load(model_path)
    mode.predict(df)
    >>> python train.py XGBoost 1
    Loading model from model/model1/XGBoost/version_1 for training

    太好了!我们刚刚告诉我们的脚本使用模型XGBoost,version 1来预测命令行上的数据。现在我们可以使用bash循环遍历模型的不同版本。

    如果你可以使用Python执行for循环,那么也可以在下面这样的终端上执行

    $ for version in 2 3 4
    > do
    > python train.py XGBoost $version
    > done

    键入Enter分隔行

    输出:

    Loading model from model/model1/XGBoost/version_1 for training
    Loading model from model/model1/XGBoost/version_2 for training
    Loading model from model/model1/XGBoost/version_3 for training
    Loading model from model/model1/XGBoost/version_4 for training

    现在,你可以在使用不同模型运行脚本的同时执行其他操作!是不是非常方便呢~如果还想知道更多的python知识,可以到python学习网

    专题推荐:python3顺序执行多个py文件
    上一篇:如何用源码安装Python第三方模块? 下一篇:如何用python pandas操作excel?

    相关文章推荐

    • python中实现多线程有几种方式?• python如何使用多线程执行多个函数?• 有哪些适合Python零基础的教程视频?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网