Python 2.7 使用命令行和其他脚本中的argparse参数 #项目名称 从projectname.source导入foo #再导入大约10个函数 def main(): parser=argparse.ArgumentParser() subparsers=parser.add_subparsers() parser\u foo=子parser。添加\u parser('foo',help=“help”) 解析器\u foo.add_参数(“--bar”,nargs=“+”,help='bar help') 解析器\u foo.set\u默认值(func=foo) #其他职能部门有更多的下属 args=parser.parse_args() args.func(args) 如果名称=“\uuuuu main\uuuuuuuu”: main() #福比 def foo(参数): 打印参数

Python 2.7 使用命令行和其他脚本中的argparse参数 #项目名称 从projectname.source导入foo #再导入大约10个函数 def main(): parser=argparse.ArgumentParser() subparsers=parser.add_subparsers() parser\u foo=子parser。添加\u parser('foo',help=“help”) 解析器\u foo.add_参数(“--bar”,nargs=“+”,help='bar help') 解析器\u foo.set\u默认值(func=foo) #其他职能部门有更多的下属 args=parser.parse_args() args.func(args) 如果名称=“\uuuuu main\uuuuuuuu”: main() #福比 def foo(参数): 打印参数,python-2.7,argparse,Python 2.7,Argparse,用法:projectname foo[--bar] 两个问题: 我知道命令行脚本应该从\uuuu main\uuuuuuuuuuy.py文件运行,但是,由于我使用的类似git的样式要求我在开始时写入文件名,所以当脚本从\uuuuuu main\uuuuuuuuupy运行时,我不知道如何访问projectname。如何将命令行中的第一个参数设置为projectname 我需要直接从命令行运行脚本,还需要从另一个脚本内部调用这些函数。在这种情况下,我可以在开始时使用projectname 我可以为每

用法:projectname foo[--bar]

两个问题:

  • 我知道命令行脚本应该从
    \uuuu main\uuuuuuuuuuy.py
    文件运行,但是,由于我使用的类似git的样式要求我在开始时写入文件名,所以当脚本从
    \uuuuuu main\uuuuuuuuupy
    运行时,我不知道如何访问
    projectname
    。如何将命令行中的第一个参数设置为
    projectname
  • 我需要直接从命令行运行脚本,还需要从另一个脚本内部调用这些函数。在这种情况下,我可以在开始时使用
    projectname
    我可以为每个功能执行以下操作:

    #foo.py
    def foo(参数):
    打印参数
    如果名称=“\uuuuu main\uuuuuuuu”:
    parser=argparse.ArgumentParser()
    subparsers=parser.add_subparsers()
    parser\u foo=子parser。添加\u parser('foo',help=“help”)
    语法分析器添加。添加参数(“--bar”,nargs=“+”,help='bar help')
    解析器\u foo.set\u默认值(func=foo)
    args=parser.parse_args()
    args.func(args)
    

    但这意味着为每个函数重复每个部分。我被困在这里了

    “从另一个脚本调用函数”是指从其他python函数调用python函数吗?如果是这样,为什么还要使用argparse呢?直接传递参数。@FlorianWinter我需要主要从另一个脚本使用函数
    foo
    。我使用argparse的原因是,我还需要能够从命令行直接调用它们。