Проверка работоспособности с использованием аргумента командной строки Python

Поздравив всех красивых людей,

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

Моя программа должна принимать от пользователя только два аргумента; рядом с названием программы; в противном случае он выдаст сообщение ИСПОЛЬЗОВАНИЕ для использования программы.

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

## Perfome a sanity check against command-line agguments
for arg in sys.argv:
    if len(arg) != 3:
        print(f'Usage: dna.py <DNA database CSV file> <STR sequence text file>')
        sys.exit(1)

person Sennacheribest    schedule 14.06.2020    source источник
comment
Почему вы перебираете sys.argv?   -  person user2357112 supports Monica    schedule 14.06.2020
comment
Вы проверяете длину строки аргументов командной строки (каждая, включая имя самого скрипта, должна состоять из трех символов). Это явно не намерение. Вы хотите тестировать len(sys.argv) без какого-либо цикла.   -  person alani    schedule 14.06.2020
comment
Большое спасибо дорогой (alaniwi) за ваш вклад. То, что вы указали, было для меня слишком полезным, код выполнил свою работу, так что еще раз спасибо.   -  person Sennacheribest    schedule 14.06.2020


Ответы (1)


Я предполагаю, что цикл for не нужен, вам просто нужно что-то вроде этого:

if len(sys.argv) != 3:
   print("Your usage")

Вы всегда можете использовать argparse стандартный модуль, который поможет вам создать удобную программу командной строки.

person Ashkan Kamyab    schedule 14.06.2020
comment
Согласен, но я подозреваю, что OP выиграет от реального примера того, как argparse можно здесь использовать. - person alani; 14.06.2020
comment
Да. argparse облегчает жизнь - person Ashkan Kamyab; 15.06.2020