https://www.freecodecamp.org/news/python-write-to-file-open-read-append-and-other-file-handling-functions-explained/