我有一个可以接受命令行参数的python文件(例如fileA.py)。接下来我调用了几个函数,这些函数通过不同的.py文件(filea - > fileb - > filec - > fileX)。在filex中,我想使用给予fileA的命令行参数(在本例中为文件)。
这是我用于命令arg解析的代码:
p = argparse.ArgumentParser()
p.add_argument("-c", dest="configfile",help="Input configuration file")
args = p.parse_args()
configfile = args.configfile
if not (configfile):
p.print_help()
sys.exit()
f = open(configfile)
config = yaml.load(f)
我可以通过每个文件传递它,直到它在fileX结束,我试过这个,但这似乎远非优雅。有没有人有更合适的解决方案?
答案 0 :(得分:0)
如果你需要在fileX.py的某些函数中使用参数,那么只解析该函数中的参数,它不需要在mainfile中。 例如 -
from filex import f
f()
import argparse
def f():
p = argparse.ArgumentParser()
p.add_argument("-c", dest="configfile",help="Input configuration file")
args = p.parse_args()
configfile = args.configfile
print configfile
然后将其作为 -
运行mainfile.py -c someconfig_file
#it prints - someconfig_file