SF patch 1631942 by Collin Winter:
(a) "except E, V" -> "except E as V"
(b) V is now limited to a simple name (local variable)
(c) V is now deleted at the end of the except block
diff --git a/Tools/scripts/md5sum.py b/Tools/scripts/md5sum.py
index e045f1a..140c0b3 100644
--- a/Tools/scripts/md5sum.py
+++ b/Tools/scripts/md5sum.py
@@ -43,7 +43,7 @@
 def printsum(filename, out=sys.stdout):
     try:
         fp = open(filename, rmode)
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg))
         return 1
     if fnfilter:
@@ -60,7 +60,7 @@
             if not data:
                 break
             m.update(data)
-    except IOError, msg:
+    except IOError as msg:
         sys.stderr.write('%s: I/O error: %s\n' % (filename, msg))
         return 1
     out.write('%s %s\n' % (m.hexdigest(), filename))
@@ -70,7 +70,7 @@
     global fnfilter, rmode, bufsize
     try:
         opts, args = getopt.getopt(args, 'blts:')
-    except getopt.error, msg:
+    except getopt.error as msg:
         sys.stderr.write('%s: %s\n%s' % (sys.argv[0], msg, usage))
         return 2
     for o, a in opts: