En Ruby puede leer desde un archivo usando s = File.read(filename)
. El más corto y más claro que conozco en Python esLa forma más fácil de leer/escribir el contenido de un archivo en Python
with file(filename) as f:
s = f.read()
¿Hay alguna otra manera de hacerlo que lo hace aún más corta (preferiblemente una línea) y más legible?
Nota: inicialmente formulé la pregunta como "hacer esto en una sola línea de código". Como señala S.Lott, más corto no necesariamente significa más legible. Así que reformulé mi pregunta solo para aclarar a qué me refería. Creo que el código de Ruby es mejor y más legible no necesariamente porque es una línea versus dos (aunque eso también importa), sino también porque es un método de clase en comparación con un método de instancia, que no plantea dudas sobre quién cierra el archivo. cómo asegurarse de que se cierra incluso si se produce una excepción, etc. Como se señala en las respuestas a continuación, puede confiar en que el GC cerrará su archivo (lo que hace que esto sea único), pero eso empeora el código incluso aunque es más corto. No solo por ser inservible, sino por hacerlo poco claro.
Crear su propia función . Entonces puedes usarlo para obtener los contenidos. La llamada sería una línea. –
@Felix Hehe, claro. Estaba buscando una forma de hacerlo usando la biblioteca estándar. :) – ibz
Simplemente curioso, ¿la declaración de Ruby cierra el archivo también? – dheerosaur