zoukankan      html  css  js  c++  java
  • python中导入一个需要传参的模块

    最近跑实验,遇到了一个问题:由于实验数据集比较多,每次跑完一个数据集就需要手动更改文件路径,再将文件传到服务器,再运行实验,这样的话效率很低,必须要专门看着这个实验,啥时候跑完就手动修改运行下一个实验。我个人无法忍受这样低效率,就想能不能有什么解决的办法。

    我们期望的解决办法是通过命令行传参来解决这个问题,因为接下来是需要编写shell脚本来批量运行实验,如果用输入语句的方式显得太笨拙。

    在编写实验代码的时候,我将所有的参数集中到一个py文件中,这样便于后期的维护,现在的问题就是需要通过命令行传参的方式改变该文件中的某些值。

    关于传参,python中提供了argparse这一模块。通过这个模块 就能很快的实现命令行传参的功能。

    下面举个例子:

    文件test1.py

    import argparse
    from argparse import RawTextHelpFormatter
                 
    parse = argparse.ArgumentParser(description="The parameters for the feature select method", formatter_class=RawTextHelpFormatter)
    parse.add_argument('name', type = str)
    
    args = parse.parse_args()
    
    name = args.name
    

      

    文件test3.py

    import test1
    
    str = test1.name + 'asdasdasd'
    

      

    文件test2.py

    import test3
    
    print test3.str
    

      

    运行:

    我们可以通过改变命令行的参数来改变这个name的值,其实关于这一点也比较好理解,我们可以想成python将这三份代码拼接在一起,再一起执行。这样就实现了我刚才想要的功能。

  • 相关阅读:
    java 排序算法
    简单选择排序
    .net 调用css/javascipt出现的问题及解决
    《大道至简》的幕后故事(4):“愚公移山记”军事地理篇
    asp.net web services
    《大道至简》的幕后故事:终结篇、勘误和PDF下载
    Java开发人员的十大戒律
    NUnit 使用
    快速排序
    .NET中回发或回调参数无效问题的解决
  • 原文地址:https://www.cnblogs.com/mlgjb/p/10739112.html
Copyright © 2011-2022 走看看