2012-04-02 22 views
-3

编写一个带有两个可选布尔参数“ - verbose”和“--live”以及两个必需字符串参数“base”和“pattern”的脚本。请使用argparse设置命令行处理。argparse编码问题

这是我到目前为止的问题的代码,我知道我越来越接近但有些不太正确。任何帮助非常感谢。感谢所有快速有用的反馈。

def main(): 
    import argparse 
    parser = argparse.ArgumentParser(description='') 
    parser.add_argument('base', type=str) 
    parser.add_arguemnt('--verbose', action='store_true') 
    parser.add_argument('pattern', type=str) 
    parser.add_arguemnt('--live', action='store_true') 

    args = parser.parse_args() 

    print(args.base(args.pattern)) 
+0

问题具体是什么? – dm03514 2012-04-02 23:14:50

+0

我猜可能没有,这是我对上述问题的第10次尝试。我的代码对你来说看起来是否正确?我不确定我的打印功能是否正确,或者我需要4种不同的add_arguments – 2012-04-02 23:21:58

+0

@Riaz Rizvi你可以通过[email protected]给我打个电话。我还有其他一些事情想与你讨论。感谢您的时间 – 2012-04-02 23:41:40

回答

0

默认情况下,字符串参数不是必需的,所以您需要声明。另外使用参数的print语句也是不正确的。

#!/usr/bin/python 
import argparse 

if __name__=="__main__": 
    parser = argparse.ArgumentParser(description='eg $python myargs.py --base arg1 --pattern arg2 [--verbose] [--live]') 
    parser.add_argument('--base', required=True, type=str) 
    parser.add_argument('--pattern', required=True, type=str) 
    parser.add_argument('--verbose', action='store_true') 
    parser.add_argument('--live', action='store_true') 

    args = parser.parse_args() 

    print "args.base=" + str(args.base) 
    print "args.pattern=" + str(args.pattern) 
    print "args.verbose=" + str(args.verbose) 
    print "args.live=" + str(args.live) 

的#!顶部的/ usr/bin中/蟒蛇能够直接调用的脚本,虽然蟒蛇必须位于那里(确认,请键入$其中蟒蛇),并且必须将文件设置为有执行权限($ chmod + x myargs.py)