diff --git a/Lib/uuid.py b/Lib/uuid.py
index 259f1bb..4f8d539 100644
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -302,15 +302,15 @@
             # 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():
