Недостатком
data = open('file').read()
является то, что в зависимости от вашей реализации Python очистка объекта открытого файла может произойти или не произойти сразу же.Это означает, что файл останется открытым, используя дескриптор файла.Вероятно, это не проблема для отдельного файла, но в цикле это может быть проблемой.
В определенных терминах CPython (обычная реализация Python) использует объекты с подсчетом ссылок, поэтому файл почти наверняка закрывается произойдет сразу же.Однако это не обязательно верно для других реализаций, таких как IronPython или Jython.