Python 使用其他脚本中的OptionParser参数调用main()

Python 使用其他脚本中的OptionParser参数调用main(),python,arguments,main,Python,Arguments,Main,我有一个modulemyModule.py,它接受一个输入文件和一个数字,使用解析参数并打印它们: python myModule.py-i“此文件”-n 100 ('this_file','100') 我试图从另一个脚本调用它,以便可以处理返回的值。在遵循中的建议后,我将从模块中导入main(),并制作一个args:values字典,然后将其作为输入提供给导入的main()函数: 但是,这不起作用,并导致错误: Traceback (most recent call last): File

我有一个module
myModule.py
,它接受一个输入文件和一个数字,使用解析参数并打印它们:

python myModule.py-i“此文件”-n 100

('this_file','100')

我试图从另一个脚本调用它,以便可以处理返回的值。在遵循中的建议后,我将从模块中导入
main()
,并制作一个
args:values
字典,然后将其作为输入提供给导入的
main()
函数:

但是,这不起作用,并导致错误:

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'
这张照片是:

(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()
的脚本:

调用模块.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)

为什么不使用
argparse
optparse
长期以来一直不受欢迎。您实际上从未使用过参数,因为您已经调用了get_args函数。并覆盖参数variable@Chris_Rands-这有什么帮助?我也有同样的问题,即使我得到的脚本的main()函数没有任何输入参数。因此,当我使用可选参数从命令行调用脚本时,它工作得很好,但是当我导入脚本,然后使用列表中的可选参数调用main()函数时,它不工作,因为main函数没有输入参数。
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)