Anna Ravenscroft identified many occurrences of "file" used to open a file
in the stdlib and changed each of them to use "open" instead.  At this
time there are no other known occurrences that can be safely changed (in
Lib and all subdirectories thereof).
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index 0ea4bb7..96923bd 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -354,7 +354,7 @@
     # load the installed pyconfig.h:
     try:
         filename = get_config_h_filename()
-        parse_config_h(file(filename), g)
+        parse_config_h(open(filename), g)
     except IOError, msg:
         my_msg = "invalid Python installation: unable to open %s" % filename
         if hasattr(msg, "strerror"):
diff --git a/Lib/idlelib/ColorDelegator.py b/Lib/idlelib/ColorDelegator.py
index e55f9e6..4cfcdc6 100644
--- a/Lib/idlelib/ColorDelegator.py
+++ b/Lib/idlelib/ColorDelegator.py
@@ -16,7 +16,7 @@
     kw = r"\b" + any("KEYWORD", keyword.kwlist) + r"\b"
     builtinlist = [str(name) for name in dir(__builtin__)
                                         if not name.startswith('_')]
-    # self.file = file("file") :
+    # self.file = open("file") :
     # 1st 'file' colorized normal, 2nd as builtin, 3rd as string
     builtin = r"([^.'\"\\#]\b|^)" + any("BUILTIN", builtinlist) + r"\b"
     comment = any("COMMENT", [r"#[^\n]*"])
diff --git a/Lib/pstats.py b/Lib/pstats.py
index 20edd70..2acdadc 100644
--- a/Lib/pstats.py
+++ b/Lib/pstats.py
@@ -173,7 +173,7 @@
 
     def dump_stats(self, filename):
         """Write the profile data to a file we know how to load back."""
-        f = file(filename, 'wb')
+        f = open(filename, 'wb')
         try:
             marshal.dump(self.stats, f)
         finally:
diff --git a/Lib/site.py b/Lib/site.py
index 92798ca..0cf19cd 100644
--- a/Lib/site.py
+++ b/Lib/site.py
@@ -274,7 +274,7 @@
             for filename in self.__files:
                 filename = os.path.join(dir, filename)
                 try:
-                    fp = file(filename, "rU")
+                    fp = open(filename, "rU")
                     data = fp.read()
                     fp.close()
                     break
diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 38cccae..f7ddac8 100644
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -934,7 +934,7 @@
         self.mode = {"r": "rb", "a": "r+b", "w": "wb"}[mode]
 
         if not fileobj:
-            fileobj = file(self.name, self.mode)
+            fileobj = open(self.name, self.mode)
             self._extfileobj = False
         else:
             if self.name is None and hasattr(fileobj, "name"):
@@ -1083,7 +1083,7 @@
         tarname = pre + ext
 
         if fileobj is None:
-            fileobj = file(name, mode + "b")
+            fileobj = open(name, mode + "b")
 
         if mode != "r":
             name = tarname
@@ -1355,7 +1355,7 @@
 
         # Append the tar header and data to the archive.
         if tarinfo.isreg():
-            f = file(name, "rb")
+            f = open(name, "rb")
             self.addfile(tarinfo, f)
             f.close()
 
@@ -1617,7 +1617,7 @@
         """Make a file called targetpath.
         """
         source = self.extractfile(tarinfo)
-        target = file(targetpath, "wb")
+        target = open(targetpath, "wb")
         copyfileobj(source, target)
         source.close()
         target.close()
diff --git a/Lib/test/test_bool.py b/Lib/test/test_bool.py
index 15e1ef7..97ac480 100644
--- a/Lib/test/test_bool.py
+++ b/Lib/test/test_bool.py
@@ -246,7 +246,7 @@
 
     def test_fileclosed(self):
         try:
-            f = file(test_support.TESTFN, "w")
+            f = open(test_support.TESTFN, "w")
             self.assertIs(f.closed, False)
             f.close()
             self.assertIs(f.closed, True)
diff --git a/Lib/test/test_bz2.py b/Lib/test/test_bz2.py
index 8561723..518005a 100644
--- a/Lib/test/test_bz2.py
+++ b/Lib/test/test_bz2.py
@@ -243,7 +243,7 @@
         self.createTempFile()
         bz2f = BZ2File(self.filename, "U")
         bz2f.close()
-        f = file(self.filename)
+        f = open(self.filename)
         f.seek(0, 2)
         self.assertEqual(f.tell(), len(self.DATA))
         f.close()
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index 3fb01e7..53054ad 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -2338,7 +2338,7 @@
                 self.ateof = 1
             return s
 
-    f = file(name=TESTFN, mode='w')
+    f = open(name=TESTFN, mode='w')
     lines = ['a\n', 'b\n', 'c\n']
     try:
         f.writelines(lines)
@@ -2394,7 +2394,7 @@
     sandbox = rexec.RExec()
 
     code1 = """f = open(%r, 'w')""" % TESTFN
-    code2 = """f = file(%r, 'w')""" % TESTFN
+    code2 = """f = open(%r, 'w')""" % TESTFN
     code3 = """\
 f = open(%r)
 t = type(f)  # a sneaky way to get the file() constructor
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index e9f9ef1..1030f97 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -130,7 +130,7 @@
     def __init__(self, *args, **kwargs):
         unittest.TestCase.__init__(self, *args, **kwargs)
 
-        self.source = file(inspect.getsourcefile(self.fodderFile)).read()
+        self.source = open(inspect.getsourcefile(self.fodderFile)).read()
 
     def sourcerange(self, top, bottom):
         lines = self.source.split("\n")
diff --git a/Lib/test/test_iter.py b/Lib/test/test_iter.py
index 324eb68..81be7e1 100644
--- a/Lib/test/test_iter.py
+++ b/Lib/test/test_iter.py
@@ -661,7 +661,7 @@
 
     # Test iterators with file.writelines().
     def test_writelines(self):
-        f = file(TESTFN, "w")
+        f = open(TESTFN, "w")
 
         try:
             self.assertRaises(TypeError, f.writelines, None)
@@ -700,7 +700,7 @@
             f.writelines(Whatever(6, 6+2000))
             f.close()
 
-            f = file(TESTFN)
+            f = open(TESTFN)
             expected = [str(i) + "\n" for i in range(1, 2006)]
             self.assertEqual(list(f), expected)
 
diff --git a/Lib/test/test_marshal.py b/Lib/test/test_marshal.py
index f87495b..4467577 100644
--- a/Lib/test/test_marshal.py
+++ b/Lib/test/test_marshal.py
@@ -16,8 +16,8 @@
                 s = marshal.dumps(expected)
                 got = marshal.loads(s)
                 self.assertEqual(expected, got)
-                marshal.dump(expected, file(test_support.TESTFN, "wb"))
-                got = marshal.load(file(test_support.TESTFN, "rb"))
+                marshal.dump(expected, open(test_support.TESTFN, "wb"))
+                got = marshal.load( open(test_support.TESTFN, "rb"))
                 self.assertEqual(expected, got)
             n = n >> 1
         os.unlink(test_support.TESTFN)
@@ -51,8 +51,8 @@
             new = marshal.loads(marshal.dumps(b))
             self.assertEqual(b, new)
             self.assertEqual(type(b), type(new))
-            marshal.dump(b, file(test_support.TESTFN, "wb"))
-            new = marshal.load(file(test_support.TESTFN, "rb"))
+            marshal.dump(b, open(test_support.TESTFN, "wb"))
+            new = marshal.load(open(test_support.TESTFN, "rb"))
             self.assertEqual(b, new)
             self.assertEqual(type(b), type(new))
 
@@ -67,8 +67,8 @@
                 s = marshal.dumps(f)
                 got = marshal.loads(s)
                 self.assertEqual(f, got)
-                marshal.dump(f, file(test_support.TESTFN, "wb"))
-                got = marshal.load(file(test_support.TESTFN, "rb"))
+                marshal.dump(f, open(test_support.TESTFN, "wb"))
+                got = marshal.load(open(test_support.TESTFN, "rb"))
                 self.assertEqual(f, got)
             n /= 123.4567
 
@@ -94,12 +94,12 @@
                 got = marshal.loads(s)
                 self.assertEqual(f, got)
 
-                marshal.dump(f, file(test_support.TESTFN, "wb"))
-                got = marshal.load(file(test_support.TESTFN, "rb"))
+                marshal.dump(f, open(test_support.TESTFN, "wb"))
+                got = marshal.load(open(test_support.TESTFN, "rb"))
                 self.assertEqual(f, got)
 
-                marshal.dump(f, file(test_support.TESTFN, "wb"), 1)
-                got = marshal.load(file(test_support.TESTFN, "rb"))
+                marshal.dump(f, open(test_support.TESTFN, "wb"), 1)
+                got = marshal.load(open(test_support.TESTFN, "rb"))
                 self.assertEqual(f, got)
             n *= 123.4567
         os.unlink(test_support.TESTFN)
@@ -110,8 +110,8 @@
             new = marshal.loads(marshal.dumps(s))
             self.assertEqual(s, new)
             self.assertEqual(type(s), type(new))
-            marshal.dump(s, file(test_support.TESTFN, "wb"))
-            new = marshal.load(file(test_support.TESTFN, "rb"))
+            marshal.dump(s, open(test_support.TESTFN, "wb"))
+            new = marshal.load(open(test_support.TESTFN, "rb"))
             self.assertEqual(s, new)
             self.assertEqual(type(s), type(new))
         os.unlink(test_support.TESTFN)
@@ -121,8 +121,8 @@
             new = marshal.loads(marshal.dumps(s))
             self.assertEqual(s, new)
             self.assertEqual(type(s), type(new))
-            marshal.dump(s, file(test_support.TESTFN, "wb"))
-            new = marshal.load(file(test_support.TESTFN, "rb"))
+            marshal.dump(s, open(test_support.TESTFN, "wb"))
+            new = marshal.load(open(test_support.TESTFN, "rb"))
             self.assertEqual(s, new)
             self.assertEqual(type(s), type(new))
         os.unlink(test_support.TESTFN)
@@ -132,8 +132,8 @@
             b = buffer(s)
             new = marshal.loads(marshal.dumps(b))
             self.assertEqual(s, new)
-            marshal.dump(b, file(test_support.TESTFN, "wb"))
-            new = marshal.load(file(test_support.TESTFN, "rb"))
+            marshal.dump(b, open(test_support.TESTFN, "wb"))
+            new = marshal.load(open(test_support.TESTFN, "rb"))
             self.assertEqual(s, new)
         os.unlink(test_support.TESTFN)
 
@@ -161,8 +161,8 @@
     def test_dict(self):
         new = marshal.loads(marshal.dumps(self.d))
         self.assertEqual(self.d, new)
-        marshal.dump(self.d, file(test_support.TESTFN, "wb"))
-        new = marshal.load(file(test_support.TESTFN, "rb"))
+        marshal.dump(self.d, open(test_support.TESTFN, "wb"))
+        new = marshal.load(open(test_support.TESTFN, "rb"))
         self.assertEqual(self.d, new)
         os.unlink(test_support.TESTFN)
 
@@ -170,8 +170,8 @@
         lst = self.d.items()
         new = marshal.loads(marshal.dumps(lst))
         self.assertEqual(lst, new)
-        marshal.dump(lst, file(test_support.TESTFN, "wb"))
-        new = marshal.load(file(test_support.TESTFN, "rb"))
+        marshal.dump(lst, open(test_support.TESTFN, "wb"))
+        new = marshal.load(open(test_support.TESTFN, "rb"))
         self.assertEqual(lst, new)
         os.unlink(test_support.TESTFN)
 
@@ -179,8 +179,8 @@
         t = tuple(self.d.keys())
         new = marshal.loads(marshal.dumps(t))
         self.assertEqual(t, new)
-        marshal.dump(t, file(test_support.TESTFN, "wb"))
-        new = marshal.load(file(test_support.TESTFN, "rb"))
+        marshal.dump(t, open(test_support.TESTFN, "wb"))
+        new = marshal.load(open(test_support.TESTFN, "rb"))
         self.assertEqual(t, new)
         os.unlink(test_support.TESTFN)
 
@@ -191,8 +191,8 @@
             self.assertEqual(t, new)
             self.assert_(isinstance(new, constructor))
             self.assertNotEqual(id(t), id(new))
-            marshal.dump(t, file(test_support.TESTFN, "wb"))
-            new = marshal.load(file(test_support.TESTFN, "rb"))
+            marshal.dump(t, open(test_support.TESTFN, "wb"))
+            new = marshal.load(open(test_support.TESTFN, "rb"))
             self.assertEqual(t, new)
             os.unlink(test_support.TESTFN)
 
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
index 9497777..bf0e196 100644
--- a/Lib/test/test_os.py
+++ b/Lib/test/test_os.py
@@ -273,7 +273,7 @@
         os.makedirs(sub11_path)
         os.makedirs(sub2_path)
         for path in tmp1_path, tmp2_path, tmp3_path:
-            f = file(path, "w")
+            f = open(path, "w")
             f.write("I'm " + path + " and proud of it.  Blame test_os.\n")
             f.close()
 
@@ -361,10 +361,10 @@
 
 class DevNullTests (unittest.TestCase):
     def test_devnull(self):
-        f = file(os.devnull, 'w')
+        f = open(os.devnull, 'w')
         f.write('hello')
         f.close()
-        f = file(os.devnull, 'r')
+        f = open(os.devnull, 'r')
         self.assertEqual(f.read(), '')
         f.close()
 
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index ebcb8c5..a47afa4 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -333,11 +333,11 @@
             f.close()
         elif self.comp == "bz2":
             f = bz2.BZ2Decompressor()
-            s = file(self.dstname).read()
+            s = open(self.dstname).read()
             s = f.decompress(s)
             self.assertEqual(len(f.unused_data), 0, "trailing data")
         else:
-            f = file(self.dstname)
+            f = open(self.dstname)
             s = f.read()
             f.close()
 
diff --git a/Lib/test/test_unicode_file.py b/Lib/test/test_unicode_file.py
index 6443efd..0058d98 100644
--- a/Lib/test/test_unicode_file.py
+++ b/Lib/test/test_unicode_file.py
@@ -152,7 +152,7 @@
     # top-level 'test' functions would be if they could take params
     def _test_single(self, filename):
         remove_if_exists(filename)
-        f = file(filename, "w")
+        f = open(filename, "w")
         f.close()
         try:
             self._do_single(filename)
@@ -170,7 +170,7 @@
     def _test_equivalent(self, filename1, filename2):
         remove_if_exists(filename1)
         self.failUnless(not os.path.exists(filename2))
-        f = file(filename1, "w")
+        f = open(filename1, "w")
         f.close()
         try:
             self._do_equivilent(filename1, filename2)
diff --git a/Lib/test/test_urllib.py b/Lib/test/test_urllib.py
index 4579c47..eb962d2 100644
--- a/Lib/test/test_urllib.py
+++ b/Lib/test/test_urllib.py
@@ -27,7 +27,7 @@
     def setUp(self):
         """Setup of a temp file to use for testing"""
         self.text = "test_urllib: %s\n" % self.__class__.__name__
-        FILE = file(test_support.TESTFN, 'wb')
+        FILE = open(test_support.TESTFN, 'wb')
         try:
             FILE.write(self.text)
         finally:
@@ -139,7 +139,7 @@
         self.registerFileForCleanUp(test_support.TESTFN)
         self.text = 'testing urllib.urlretrieve'
         try:
-            FILE = file(test_support.TESTFN, 'wb')
+            FILE = open(test_support.TESTFN, 'wb')
             FILE.write(self.text)
             FILE.close()
         finally:
@@ -192,7 +192,7 @@
         self.assertEqual(second_temp, result[0])
         self.assert_(os.path.exists(second_temp), "copy of the file was not "
                                                   "made")
-        FILE = file(second_temp, 'rb')
+        FILE = open(second_temp, 'rb')
         try:
             text = FILE.read()
             FILE.close()
diff --git a/Lib/test/test_urllibnet.py b/Lib/test/test_urllibnet.py
index 9105afe..675184b 100644
--- a/Lib/test/test_urllibnet.py
+++ b/Lib/test/test_urllibnet.py
@@ -120,7 +120,7 @@
         file_location,info = urllib.urlretrieve("http://www.python.org/")
         self.assert_(os.path.exists(file_location), "file location returned by"
                         " urlretrieve is not a valid path")
-        FILE = file(file_location)
+        FILE = open(file_location)
         try:
             self.assert_(FILE.read(), "reading from the file location returned"
                          " by urlretrieve failed")
@@ -134,7 +134,7 @@
                                                 test_support.TESTFN)
         self.assertEqual(file_location, test_support.TESTFN)
         self.assert_(os.path.exists(file_location))
-        FILE = file(file_location)
+        FILE = open(file_location)
         try:
             self.assert_(FILE.read(), "reading from temporary file failed")
         finally:
diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index 7a1a3b4..b9fdd5d 100644
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -210,7 +210,7 @@
         cmdline = [self.name] + raise_opt + args
 
         if remote or self.background:
-            inout = file(os.devnull, "r+")
+            inout = open(os.devnull, "r+")
         else:
             # for TTY browsers, we need stdin/out
             inout = None
@@ -334,7 +334,7 @@
         else:
             action = "openURL"
 
-        devnull = file(os.devnull, "r+")
+        devnull = open(os.devnull, "r+")
         # if possible, put browser in separate process group, so
         # keyboard interrupts don't affect browser as well as Python
         setsid = getattr(os, 'setsid', None)