Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误:需要以下参数_Python_Python Import_Argparse_Args - Fatal编程技术网

Python错误:需要以下参数

Python错误:需要以下参数,python,python-import,argparse,args,Python,Python Import,Argparse,Args,我有一个Python脚本,当通过命令行执行它时,它工作得很好。 我试图做的是将这个脚本导入到另一个python文件中,并从那里运行它 问题是初始脚本需要参数。它们的定义如下: #file one.py def main(*args): import argparse parser = argparse.ArgumentParser(description='MyApp') parser.add_argument('-o','--output',dest='output', h

我有一个Python脚本,当通过命令行执行它时,它工作得很好。 我试图做的是将这个脚本导入到另一个python文件中,并从那里运行它

问题是初始脚本需要参数。它们的定义如下:

#file one.py
def main(*args):
   import argparse

   parser = argparse.ArgumentParser(description='MyApp')
   parser.add_argument('-o','--output',dest='output', help='Output file image', default='output.png')
   parser.add_argument('files', metavar='IMAGE', nargs='+', help='Input image file(s)')

   a = parser.parse_args()
我将此脚本导入到另一个文件并传递了参数:

#file two.py
import one
one.main('-o file.png', 'image1.png', 'image2.png')
但是,尽管我将输入图像定义为参数,但仍然出现以下错误:

usage: two.py [-h] [-o OUTPUT] 
          IMAGE [IMAGE ...]
two.py: error: the following arguments are required: IMAGE

当使用非来自
sys.argv
的参数调用
argparse
时,必须使用

parser.parse_args(args)
而不仅仅是

parser.parse_args()

如果您的MAIN不是def/函数,您可以模拟传入的参数:

if __name__=='__main__':

    # Set up command-line arguments
    parser = ArgumentParser(description="Simple employee shift roster generator.")
    parser.add_argument("constraints_file", type=FileType('r'),
                        help="Configuration file containing staff constraints.")
    parser.add_argument("first_day", type=str,
                        help="Date of first day of roster (dd/mm/yy)")
    parser.add_argument("last_day", type=str,
                        help="Date of last day of roster (dd/mm/yy)") 

    #Simulate the args to be expected...   <--- SEE HERE!!!
    argv = ["",".\constraints.txt", "1/5/13", "1/6/13"]

    # Parse arguments
    args = parser.parse_args(argv[1:])
如果名称=main:
#设置命令行参数
parser=ArgumentParser(description=“简单员工轮班花名册生成器”)
parser.add_参数(“约束_文件”,type=FileType('r'),
help=“包含人员约束的配置文件。”)
添加参数(“第一天”,type=str,
help=“花名册第一天的日期(日/月/年)”
添加参数(“最后一天”,type=str,
help=“花名册最后一天的日期(日/月/年)”
#模拟预期的参数。。。