Ответ 1
Это приведет к получению содержимого в одну строку в Python 2.6 1 и выше:
with open('x.txt') as x: f = x.read()
И это создаст список строк:
with open('x.txt') as x: f = x.readlines()
Эти подходы гарантируют немедленное закрытие входного файла сразу после чтения.
Сноска:
- Этот подход также можно использовать в Python 2.5 с помощью
from __future__ import with_statement
.
Более старый подход, который не гарантирует немедленного закрытия, - использовать его для создания одной строки:
f = open('x.txt').read()
И для создания списка строк:
f = open('x.txt').readlines()
На практике он будет немедленно закрыт в некоторых версиях CPython, но закрыт "только тогда, когда сборщик мусора приближается к нему" в Jython, IronPython и, возможно, в будущей версии CPython.