https://llego.dev/posts/working-with-files-python-using-with-statement/