Эффективность с "попробуй ... кроме" - PullRequest
0 голосов
/ 06 октября 2011

Код работает нормально. У меня только что был вопрос эффективности. В этом коде я использую «try ... except» для передачи ошибки, которая может привести к сбою программы. Ошибка вызвана тем, что IP-адрес недоступен. Как я уже говорил, код выполняет свою работу. Я хочу знать, является ли это самым быстрым способом увидеть, достижим ли IP и пропустить его. Он останавливается на 30-45 секунд, если IP не может быть найден Накапливать кучу раз это может занять довольно много времени.

import win32net

def GetUsers( IP ):
    try:
        Users = win32net.NetGroupGetUsers(IP,'none',0),
    except:
        print IP + ': Was not found!'
    else:
        print IP + ': ' + Users
    return

F = open("C:\Users\*User*\Desktop\IP_List.txt")

for CurrentIP in F.readlines():
    GetUsers(CurrentIP.strip()),

F.close()
print 'DONE!'

1 Ответ

5 голосов
/ 06 октября 2011

Ваш вопрос об эффективности абсолютно не связан с вашим использованием try ... except.Обработка исключений в Python относительно быстрая, примерно такая же, как при выполнении любого другого оператора Python (мы говорим о порядке микросекунд).

Ваша 30-45 секундная производительность, несомненно, обусловлена ​​поведением NetGroupGetUsers когда IP-адрес недоступен.

...