]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
#3388: add a paragraph about using "with" for file objects.
authorGeorg Brandl <georg@python.org>
Wed, 16 Jul 2008 23:35:54 +0000 (23:35 +0000)
committerGeorg Brandl <georg@python.org>
Wed, 16 Jul 2008 23:35:54 +0000 (23:35 +0000)
Doc/tutorial/inputoutput.rst

index fe33d12b3fa7bd4892949cc6c610f795b665b18c..1b344e60b22dc8f899e4fe860b4d3ce466a12427 100644 (file)
@@ -348,6 +348,16 @@ attempts to use the file object will automatically fail. ::
      File "<stdin>", line 1, in ?
    ValueError: I/O operation on closed file
 
+It is good practice to use the :keyword:`with` keyword when dealing with file
+objects.  This has the advantage that the file is properly closed after its
+suite finishes, even if an exception is raised on the way.  It is also much
+shorter than writing equivalent :keyword:`try`\ -\ :keyword:`finally` blocks::
+
+    >>> with open('/tmp/workfile', 'r') as f:
+    ...     read_data = f.read()
+    >>> f.closed
+    True
+
 File objects have some additional methods, such as :meth:`isatty` and
 :meth:`truncate` which are less frequently used; consult the Library Reference
 for a complete guide to file objects.