Use a context manager for some file objects.
diff --git a/Lib/keyword.py b/Lib/keyword.py
index a5974b5..a3788a6 100755
--- a/Lib/keyword.py
+++ b/Lib/keyword.py
@@ -61,21 +61,19 @@
     else: optfile = "Lib/keyword.py"
 
     # scan the source file for keywords
-    fp = open(iptfile)
-    strprog = re.compile('"([^"]+)"')
-    lines = []
-    for line in fp:
-        if '{1, "' in line:
-            match = strprog.search(line)
-            if match:
-                lines.append("        '" + match.group(1) + "',\n")
-    fp.close()
+    with open(iptfile) as fp:
+        strprog = re.compile('"([^"]+)"')
+        lines = []
+        for line in fp:
+            if '{1, "' in line:
+                match = strprog.search(line)
+                if match:
+                    lines.append("        '" + match.group(1) + "',\n")
     lines.sort()
 
     # load the output skeleton from the target
-    fp = open(optfile)
-    format = fp.readlines()
-    fp.close()
+    with open(optfile) as fp:
+        format = fp.readlines()
 
     # insert the lines of keywords
     try:
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 3362ea1..83ff585 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -155,21 +155,15 @@
         if 'HOME' in os.environ:
             envHome = os.environ['HOME']
             try:
-                rcFile = open(os.path.join(envHome, ".pdbrc"))
+                with open(os.path.join(envHome, ".pdbrc")) as rcFile:
+                    self.rcLines.extend(rcFile)
             except IOError:
                 pass
-            else:
-                for line in rcFile.readlines():
-                    self.rcLines.append(line)
-                rcFile.close()
         try:
-            rcFile = open(".pdbrc")
+            with open(".pdbrc") as rcFile:
+                self.rcLines.extend(rcFile)
         except IOError:
             pass
-        else:
-            for line in rcFile.readlines():
-                self.rcLines.append(line)
-            rcFile.close()
 
         self.commands = {} # associates a command list to breakpoint numbers
         self.commands_doprompt = {} # for each bp num, tells if the prompt
diff --git a/Lib/platform.py b/Lib/platform.py
index f7ffd00..b9bc303 100755
--- a/Lib/platform.py
+++ b/Lib/platform.py
@@ -200,9 +200,8 @@
     """
     if os.path.exists('/var/adm/inst-log/info'):
         # SuSE Linux stores distribution information in that file
-        info = open('/var/adm/inst-log/info').readlines()
         distname = 'SuSE'
-        for line in info:
+        for line in open('/var/adm/inst-log/info'):
             tv = line.split()
             if len(tv) == 2:
                 tag,value = tv
@@ -217,8 +216,7 @@
 
     if os.path.exists('/etc/.installed'):
         # Caldera OpenLinux has some infos in that file (thanks to Colin Kong)
-        info = open('/etc/.installed').readlines()
-        for line in info:
+        for line in open('/etc/.installed'):
             pkg = line.split('-')
             if len(pkg) >= 2 and pkg[0] == 'OpenLinux':
                 # XXX does Caldera support non Intel platforms ? If yes,
@@ -327,9 +325,8 @@
         return _dist_try_harder(distname,version,id)
 
     # Read the first line
-    f = open('/etc/'+file, 'r')
-    firstline = f.readline()
-    f.close()
+    with open('/etc/'+file, 'r') as f:
+        firstline = f.readline()
     _distname, _version, _id = _parse_release_file(firstline)
 
     if _distname and full_distribution_name:
diff --git a/Lib/turtle.py b/Lib/turtle.py
index 6f06059..5185f3c 100644
--- a/Lib/turtle.py
+++ b/Lib/turtle.py
@@ -169,9 +169,8 @@
 
 def config_dict(filename):
     """Convert content of config-file into dictionary."""
-    f = open(filename, "r")
-    cfglines = f.readlines()
-    f.close()
+    with open(filename, "r") as f:
+        cfglines = f.readlines()
     cfgdict = {}
     for line in cfglines:
         line = line.strip()