В Ruby вы можете читать из файла, используя s = File.read(filename)
. Самое короткое и ясное, что я знаю в Python, это
with open(filename) as f:
s = f.read()
Есть ли другой способ сделать это, чтобы сделать его еще короче (желательно одну строку) и более читабельным?
Примечание: изначально я сформулировал вопрос как "делая это в одной строке кода". Как указывает С.Лотт, короткое не обязательно означает более читабельный. Поэтому я перефразировал свой вопрос, чтобы прояснить, что я имел в виду. Я думаю, что код на Ruby лучше и удобнее для чтения не обязательно потому, что он представляет собой одну строку против двух (хотя это тоже важно), а также потому, что он является методом класса, а не методом экземпляра, который не ставит вопрос о том, кто закрывает файл, как сделать так, чтобы он закрывался, даже если возникло исключение, и т.д. Как указано в ответах ниже, вы можете положиться на GC, чтобы закрыть файл (таким образом, сделав его однострочным), но это делает код еще хуже хотя это короче. Не только из-за непереносимости, но и из-за неясности.