Специфичные для ОС c правила пространства имен в Python - PullRequest
1 голос
/ 14 января 2020

Следующий код отлично работает на Windows, но вызывает ошибку UnboundLocalError на Ma c:

file = open(file_path, newline = '')
reader = file.readlines() 

for line in reader:  
    if "Physical Address" in line: 
        line_ = line 
    if self.ip in line:
        split_line = line_.split()
        break

for word in split_line:     
    if '-' in word:
        dashed_mac_address = word
        break

Во втором для l oop, Python на Windows знает, что Я говорю о том, но на Ma c 'split_line' и 'dashed_mac_address' интерпретируются как ссылки перед присваиванием.

Я понимаю, почему возникает эта ошибка, но так ли это? Являются ли правила пространства имен ос-специфичными c? Я ожидаю, что что-то подобное будет стандартным для любой платформы.

1 Ответ

0 голосов
/ 14 января 2020

Похоже, вы пытаетесь проанализировать адрес ip / ma c с выходных данных терминала.

В этом случае выходные данные отличаются от того, что показано в подсказке windows cmd и показанный в Ма c.

Попробуйте посмотреть пример того, как вывод ipaddress выглядит на ма c termina, и сравните его с выводом windows prompt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...