LINUX.ORG.RU

История изменений

Исправление Ttt, (текущая версия) :

Ну что бы сделал конкретно я:

1) Парсить файл придётся в любом случае, значит это должно делаться в самом начале скрипта. Либо просто будут идти соответствующие строки, либо будет вызываться заранее определённая функция, которая будет возвращать объект с распарсенными данными. Судя по задаче, рекомендую сохранять данные в следующую структуру:

{company:([],[],[])}

Ключом словаря будет название компании, а в массивах, соответственно, список IPv4-адресов, список IPv6-адресов и список почтовых серверов данной компании.

После того, как распарсили, парсим аргументы командной строки.

У тебя будет что-то типа:

if len(sys.argv) < 3:
    ...//код, выполняемый в случае отсутствия аргумента s
elif sys.argv[1] == '-s':
    if sys.argv[2] == 'ab':
        ...//по алфавиту
    elif ...:
        ....
    elif ...:
        ....

в этом коде ещё нет проверки правильности аргументов командной строки.

//P.S.: для сортировки рекомендую ознакомиться с этим: https://wiki.python.org/moin/HowTo/Sorting

Исходная версия Ttt, :

Ну что бы сделал конкретно я:

1) Парсить файл придётся в любом случае, значит это должно делаться в самом начале скрипта. Либо просто будут идти соответствующие строки, либо будет вызываться заранее определённая функция, которая будет возвращать объект с распарсенными данными. Судя по задаче, рекомендую сохранять данные в следующую структуру:

{company:([],[],[])}

Ключом словаря будет название компании, а в массивах, соответственно, список IPv4-адресов, список IPv6-адресов и список почтовых серверов данной компании.

После того, как распарсили, парсим аргументы командной строки.

У тебя будет что-то типа:

if len(sys.argv) < 3:
    ...//код, выполняемый в случае отсутствия аргумента s
elif sys.argv[1] == '-s':
    if sys.argv[2] == 'ab':
        ...//по алфавиту
    elif ...:
        ....
    elif ...:
        ....

в этом коде ещё нет проверки правильности аргументов командной строки.