Easy Tutorial
❮ Ref Math Isinf Python List Interchange ❯

Python with Keyword

Python3 Errors and Exceptions

The with statement in Python is used for exception handling, encapsulating the try…except…finally coding paradigm, which enhances usability.

The with statement makes the code clearer and more readable, simplifying the management of common resources like file streams.

Using the with keyword when dealing with file objects is a good practice.

Without with, and without try…except…finally:

Example

file = open('./test_tutorialpro.txt', 'w')
file.write('hello world !')
file.close()

Example

file = open('./test_tutorialpro.txt', 'w')
try:
    file.write('hello world')
finally:
    file.close()

In the above code, we use try to capture potential exceptions, execute the except block when an exception occurs, and the finally block will execute regardless of the situation, ensuring the file is closed and not holding resources due to an exception.

Using the with keyword:

Example

with open('./test_tutorialpro.txt', 'w') as file:
    file.write('hello world !')

Using the with keyword, the system automatically calls f.close() method, which is equivalent to using a try/finally statement.

Example

>>> with open('./test_tutorialpro.txt') as f:
...     read_data = f.read()

>>> # Check if the file is closed
>>> f.closed
True

The with statement is implemented based on the context manager.

A context manager is a class that implements the __enter__ and __exit__ methods.

The with statement ensures that the __exit__ method is called at the end of the nested block.

This concept is similar to using a try...finally block.

Example

with open('./test_tutorialpro.txt', 'w') as my_file:
    my_file.write('hello world!')

The above example writes hello world! to the ./test_tutorialpro.txt file.

The file object defines the __enter__ and __exit__ methods, meaning the file object also implements the context manager. The __enter__ method is called first, then the code within the with statement is executed, and finally, the __exit__ method is called. Even if an error occurs, the __exit__ method is called, which means the file stream is closed.

Python3 Errors and Exceptions

❮ Ref Math Isinf Python List Interchange ❯