我有一个模块myModule.py
,它接受一个输入文件和一个数字,使用OptionParser解析参数并打印出来:
python myModule.py -i "this_file" -n 100
('this_file', '100')
我试图从另一个脚本调用它,以便我可以使用返回的值。在this question中遵循建议后,我从我的模块导入main()
并制作args:values
字典,然后我将其作为输入提供给导入的main()
函数:< / p>
然而,这不起作用并因错误而死:
Traceback (most recent call last):
File "call_module.py", line 8, in <module>
fileIn, number_in = main(**args)
TypeError: main() got an unexpected keyword argument 'in_file'
我还尝试将args作为列表传递:
args = ['-i','this_file', '-n', 100]
fileIn, number_in = main(args)
打印:
(None, None)
(None, None)
有人能说出我在这里做错了什么吗?
这是我的模块包含main()
:
myModule.py
#!/usr/bin/env python
import os, re, sys
from optparse import OptionParser
def get_args():
parser = OptionParser()
parser.add_option("-i", \
"--in_file", \
dest="in_file",
action="store")
parser.add_option("-n", \
"--number", \
dest="number",
action="store")
options, args = parser.parse_args()
return(parser)
def main(args):
parser = get_args()
options, args = parser.parse_args()
fileIn = options.in_file
number_in = options.number
print(fileIn, number_in)
return(fileIn, number_in)
if __name__ == "__main__":
# sys.exit(main())
parser = get_args()
args = parser.parse_args()
main(args)
我用来调用main()
的脚本:
call_module.py
import os, re, sys
from myModule import main, get_args
# args = { "in_file": 'this_file',
# "number" : 100 }
args = ['-i','this_file', '-n', 100]
print(args)
fileIn, number_in = main(args)
print(fileIn, number_in)