How do I ensure resources are cleaned up (with statements)?

In Python, the `with` statement is used to wrap the execution of a block of code within methods defined by a context manager. This allows for the automatic management of resources, such as file streams and network connections, ensuring they are properly cleaned up after their use.

When you use a `with` statement, the context manager takes care of entering and exiting the runtime context. This means that even if an exception occurs, the cleanup code will be executed, preventing resource leaks.

Below is an example of using the `with` statement to open a file, read its contents, and ensure it is properly closed afterward.

with open('example.txt', 'r') as file: contents = file.read() print(contents)

python with statement context manager resource cleanup file handling