argparse проблема кодирования - PullRequest
0 голосов
/ 03 апреля 2012

написать скрипт, который принимает два необязательных логических аргумента, "- 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 голосов
/ 03 апреля 2012

Строковые аргументы не требуются по умолчанию, поэтому вы должны указать это.Кроме того, оператор 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)

...