Первый элемент sys.argv
(sys.argv[0]
) - это имя выполняемого в данный момент сценария. Поскольку это имя сценария (вероятно) не является допустимым аргументом (и, вероятно, в любом случае не начинается с -
или --
), getopt
не распознает его как аргумент. Из-за особенностей работы getopt
, когда он видит что-то, что не является флагом командной строки (то, что не начинается с -
или --
), он останавливает обработку параметров командной строки (и помещает остальные аргументы в args
), поскольку предполагается, что остальные аргументы являются элементами, которые будут обрабатываться программой (например, имена файлов или другие «обязательные» аргументы).