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