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

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

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

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

下面举个例子:

文件test1.py

  1. import argparse
  2. from argparse import RawTextHelpFormatter
  3.  
  4. parse = argparse.ArgumentParser(description="The parameters for the feature select method", formatter_class=RawTextHelpFormatter)
  5. parse.add_argument('name', type = str)
  6.  
  7. args = parse.parse_args()
  8.  
  9. name = args.name

  

文件test3.py

  1. import test1
  2.  
  3. str = test1.name + 'asdasdasd'

  

文件test2.py

  1. import test3
  2.  
  3. print test3.str

  

运行:

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

python中导入一个需要传参的模块的更多相关文章

  1. 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)

    详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类   Python中函数参数定义及调用函数时传参 ...

  2. python中导入模块的本质, 无法导入手写模块的解决办法

    最近身边一些朋友发生在项目当中编写自己模块,导入的时候无法导入的问题. 下面我来分享一下关于python中导入模块的一些基本知识. 1 导入模块时寻找路径 在每一个运行的python程序当中,都维护了 ...

  3. Python中导入第三方声源库Acoular的逻辑解释以及Acoular的下载

    [声明]欢迎转载,但请保留文章原始出处→_→ 秦学苦练:http://www.cnblogs.com/Qinstudy/ 文章来源:http://www.cnblogs.com/Qinstudy/p/ ...

  4. Confluence 6 从一个 XML 备份中导入一个空间

    有下面 2 中方法可以导入一个空间——通过上传一个文件,或者从你 Confluence 服务器上的一个目录中导入.上传文件仅仅是针对一个小站点的情况.为了取得最好的导入结果,我们推荐你从服务器上的目录 ...

  5. 在Google Colab中导入一个本地模块或.py文件

    模块与单个.py文件的区别,模块中含有__init__.py文件,其中函数调用使用的是相对路径,如果使用导入.py文件的方法在Google Colab中导入模块 会报错:Attempted relat ...

  6. js中使用进行字符串传参

    在js中拼接html标签传参时,如果方法参数是字符串需要加上引号,这里需要进行字符转义 <a href='javascript:addMenuUI("+"\"&qu ...

  7. python 函数的定义及传参

    函数是一个通用的程序结构部件,是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 定义一个简单的函数: >>> def test(a): #创建一个函数,函数名是test ...

  8. python提供了一个进行hash加密的模块:hashlib

    python提供了一个进行hash加密的模块:hashlib下面主要记录下其中的md5加密方式 import hashlib data1 = 'sada' #####字母和数字 m = hashlib ...

  9. 【转】idea project中导入其他文件夹下的模块,可能出现java.io.FileNotFoundException: XXX.xml

    在一个project 中导入一个java 模块, 我要执行该模块的main函数 ,在main函数中有一个 FileReader(“generatorConfig.xml”) 而generatorCon ...

随机推荐

  1. 将一个C++的AES加密算法(有向量的)翻译成C#

    /****************************************************************************** Copyright (c) 2012-2 ...

  2. pytorch做seq2seq注意力模型的翻译

    以下是对pytorch 1.0版本 的seq2seq+注意力模型做法语--英语翻译的理解(这个代码在pytorch0.4上也可以正常跑): # -*- coding: utf-8 -*- " ...

  3. 认证鉴权与API权限控制在微服务架构中的设计与实现(四)

    引言: 本文系<认证鉴权与API权限控制在微服务架构中的设计与实现>系列的完结篇,前面三篇已经将认证鉴权与API权限控制的流程和主要细节讲解完.本文比较长,对这个系列进行收尾,主要内容包括 ...

  4. JS的document.links函数使用示例

    ? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&g ...

  5. Unity 5.4版本 Application.systemLanguage 失效

    最近在上线双语版本(一个包支持中文.英文二种语言)时,遇到一个坑点 if (ToolUtils.isAndroid()) { if (Application.systemLanguage == Sys ...

  6. win32下使用相对exe文件的绝对路径资源

    在使用VC++进行开发时,如果按F5进行Debug时,当前相对资源是相对工程的vcxproj的文件夹目录,而直接双击运行exe时,资源是相对exe的文件夹目录.为了兼容这二者,最好使用绝对路径,这样无 ...

  7. scipy.stats与统计学:4个概率分布:N,chi2,F,t

    scipy.stats与统计学:4个概率分布:N,chi2,F,t   四个常用分布的概率密度函数.分布函数.期望.分位数.以及期望方差标准差中位数原点矩: 1,正态分布: from scipy.st ...

  8. FileUpload1.PostedFile.FileName 获取的文件名

    例如文件叫做 c:\web\a.jpg 如果用IE,则返回   c:\web\a.jpg 含路径 如果用Chrome,则返回 a.jpg 不含路径.

  9. 分布式环境中,模块数据交互协议分析 (百度brpc)

    1. 背景 之前听到同事说,要为自己的模块考虑写个数据协议.今天有空想了一下.写出来,方便后续使用. 开源代码brpc中可以支持多种协议,nshead.redis.mongo等20多种协议. 2. 什 ...

  10. SSE图像算法优化系列二十六:和时间赛跑之优化高斯金字塔建立的计算过程。

    图像金字塔技术在很多层面上都有着广泛的应用,很多开源的工具也都有对他们的建立写了专门的函数,比如IPP,比如OpenCV等等,这方面的理论文章特别多,我不需要赘述,但是我发现大部多分开源的代码的实现都 ...