argparse编码问题

时间:2012-04-02 23:07:04

标签: python argparse

编写一个脚本,它带有两个可选的布尔参数,“ - verbose”和“--live”,以及两个必需的字符串参数,“base”和“pattern”。请使用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))

1 个答案:

答案 0 :(得分: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 / python允许直接调用脚本,虽然python必须位于那里(确认,键入$ which python),并且必须将文件设置为具有执行权限( $ chmod + x myargs.py)