summaryrefslogtreecommitdiff
path: root/Lib/uuid.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/uuid.py')
-rw-r--r--Lib/uuid.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/Lib/uuid.py b/Lib/uuid.py
index 259f1bbb0e..fdd0c5cbec 100644
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -302,15 +302,15 @@ def _find_mac(command, args, hw_identifiers, get_index):
# LC_ALL to get English output, 2>/dev/null to
# prevent output on stderr
cmd = 'LC_ALL=C %s %s 2>/dev/null' % (executable, args)
- pipe = os.popen(cmd)
+ with os.popen(cmd) as pipe:
+ for line in pipe:
+ words = line.lower().split()
+ for i in range(len(words)):
+ if words[i] in hw_identifiers:
+ return int(
+ words[get_index(i)].replace(':', ''), 16)
except IOError:
continue
-
- for line in pipe:
- words = line.lower().split()
- for i in range(len(words)):
- if words[i] in hw_identifiers:
- return int(words[get_index(i)].replace(':', ''), 16)
return None
def _ifconfig_getnode():
@@ -353,10 +353,13 @@ def _ipconfig_getnode():
pipe = os.popen(os.path.join(dir, 'ipconfig') + ' /all')
except IOError:
continue
- for line in pipe:
- value = line.split(':')[-1].strip().lower()
- if re.match('([0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]', value):
- return int(value.replace('-', ''), 16)
+ else:
+ for line in pipe:
+ value = line.split(':')[-1].strip().lower()
+ if re.match('([0-9a-f][0-9a-f]-){5}[0-9a-f][0-9a-f]', value):
+ return int(value.replace('-', ''), 16)
+ finally:
+ pipe.close()
def _netbios_getnode():
"""Get the hardware address on Windows using NetBIOS calls.