with statement is very helpful to simplify working with exception handling.
For example when working with files, each time we open a file, we must remember to close it.
with makes this process transparent.
Instead of writing:
filename = '/Users/flavio/test.txt' try: file = open(filename, 'r') content = file.read() print(content) finally: file.close()
You can write:
filename = '/Users/flavio/test.txt' with open(filename, 'r') as file: content = file.read() print(content)
In other words we have built-in implicit exception handling, as
close() will be called automatically for us.
with is not just helpful to work with files. The above example is just meant to introduce its capabilities.