如何从通过命令行传递的文件中访问变量

时间:2016-01-04 17:46:19

标签: python python-2.7 arguments

目前我的包中有config.py,我可以从其他py文件中访问config.py中定义的变量

import config
var1 = config.var1

首先,我可以传递文件作为参数吗? test.py config.py

但是有没有办法通过命令行作为参数传递配置文件并访问其中定义的变量?我看到有sys模块来通过命令行传递参数。但是我可以在传递的文件中定义变量吗?

修改 现在,我可以将传递的文件中的变量作为__import__(sys.argv[1])访问并调用python test.py config。但我可以通过给pythonpath调用config.py文件吗?是/ {/ 1 {}还是python test.py ~/Desktop/config?因为如果我这样做,我会得到PYTHONPATH='~/Desktop/' python test.py config

1 个答案:

答案 0 :(得分:3)

使用config.py执行的操作是在脚本中提供__import__(sys.args[1])中的所有名称。

您可以使用this question的答案中所述的p = argparse.ArgumentParser(description="...") p.add_argument("--var1", type=int) p.add_argument("--var2", type=str) config = p.parse_args() # will look at sys.args by default if config.var1 > 10: .... 来执行此操作。

但是对于实际的程序配置,请务必查看argparse模块!

$modelDynamic=new DynamicModel(['TIN','Business_Code']);