Argparse - Как разобрать второй аргумент, если первый не введен и возвращается к значению по умолчанию - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть следующая функция как часть сканера каталогов:

def get_args():
    cwd = os.getcwd()
    parser = argparse.ArgumentParser(description='Scan all files')
    parser.add_argument("path", help="Path to folder", nargs='?', default=cwd)
    parser.add_argument("print", help="Print file extensions", nargs='?', default=False)
    return parser.parse_args()


Scan /usr/Ari True

Это отсканирует указанную папку и распечатает список

Scan

Будет сканировать текущий рабочий каталог, где я нахожусь в терминале

Scan True

Не работает, поскольку предполагается, что я вхожу в каталог. Как использовать по умолчанию первый аргумент, но указать второй?

enter image description here

1 Ответ

0 голосов
/ 10 апреля 2019

Ответ:

    def get_args():
        cwd = os.getcwd()
        parser = argparse.ArgumentParser(description='ScanDirecotry.py --path <path> --print (remove --print if you dont want to print.)')
        parser.add_argument("--path", help="Path to folder", default=cwd)
        parser.add_argument("--print", help="Print file extensions", action='store_true')
        return parser.parse_args()
...