¿Hay una función incorporada en Ruby para leer todo el archivo sin usar ningún bucle? Hasta ahora, solo he encontrado métodos que se leen en fragmentos (línea o carácter).¿Cómo leer todo el archivo en Ruby?
Respuesta
IO.read("filename")
o
File.read("filename")
Documentos: http://ruby-doc.org/core/classes/IO.html – quantumSoup
Solo por curiosidad, ¿por qué no puedo encontrar esta función aquí: http://www.ruby-doc.org/core- 2.1.2/File.html –
@MartinKonecny porque 'File :: read' en realidad se hereda de' IO :: read'; ambos son exactamente iguales porque 'File' se extiende' IO'. –
File.readlines("filename")
Esto también es un gran método para leer todo, desde un archivo y romper dividida en retornos de carro. El retorno es una matriz con una línea por elemento.
Más específicamente, 'readlines' se divide en la variable interna' $/', que por defecto es" \ n ". Sin embargo, puede restablecer temporalmente '$ /' y leer los archivos en trozos delimitados de otras maneras. – Telemachus
Por favor, ignore el consejo que dice "Nunca debe sorber (que es el término molesto para esto) un archivo". Algunas veces esto es algo muy útil y sensato.
Supongamos que está leyendo un archivo varias veces: es posible que leer el archivo en una matriz sea una optimización sensata al leer el archivo línea por línea, incluso teniendo en cuenta que el o el archivo almacenará en caché el archivo.
Esto no proporciona una respuesta a la pregunta. Para criticar o solicitar aclaraciones de un autor, deje un comentario debajo de su publicación; siempre puede comentar sus propias publicaciones, y una vez que tenga suficiente [reputación] (http://stackoverflow.com/help/whats-reputation) lo hará poder [comentar cualquier publicación] (http://stackoverflow.com/help/privileges/comment). - [De la crítica] (/ review/low-quality-posts/10916920) – ndn
Lo siento, pero simplemente no estoy interesado en crear un representante. El consejo de "no sorber" es simplemente incorrecto. A veces es una técnica útil (acabo de reducir el tiempo de ejecución de un programa en un factor de 1000 al leer todo el archivo), y no debe ser desaprobado. –
Leer un archivo en la memoria de una vez (sorber) no es más rápido que línea por línea una vez que un archivo alcanza 1MB de tamaño. Más allá de ese punto, puede leer línea por línea más rápido y evitar posibles problemas de escalabilidad. "simplemente incorrecto" no es útil sin explicar cuándo es apropiado. Consulte http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad para obtener más información. –
- 1. Cómo leer un archivo abierto en Ruby
- 2. ¿Cómo leer todo el texto de un archivo de bytes []?
- 3. ¿Cómo puedo leer un archivo con Ruby?
- 4. Leer un archivo en trozos en Ruby
- 5. Rendimiento al leer un archivo línea por línea vs leer todo el archivo
- 6. ¿Cómo puedo leer/transmitir un archivo sin cargar todo el archivo en la memoria?
- 7. Obtener dimensiones de la imagen sin leer todo el archivo
- 8. ¿Cómo usar Boost :: Spirit :: Lex para leer un archivo sin leer todo el archivo en la memoria primero?
- 9. ¿Cómo leer un archivo de abajo hacia arriba en Ruby?
- 10. ¿Cómo escribir en el archivo en Ruby?
- 11. Perl: cómo elimino la primera línea de un archivo sin leer ni copiar todo el archivo
- 12. ¿Cómo leer todo el flujo en una std :: string?
- 13. ¿Cómo leer el archivo .class?
- 14. iOS: ¿cómo leer todo el contenido de un archivo de recursos html en un NSString *?
- 15. Python: obtenga el iterador de columna de un archivo (sin leer todo el archivo)
- 16. cómo proteger rb_todo todo en ruby
- 17. leer el archivo en classpath
- 18. Cómo leer el archivo XML en Android
- 19. ¿Cómo leer el archivo XML en C#?
- 20. ¿Cómo leer el archivo csv en android?
- 21. ¿Cómo leer el archivo binario en C#?
- 22. anexar archivos a un archivo sin leer/reescribir todo el archivo
- 23. ¿Cómo se puede leer el contenido del archivo remoto en Ruby on Rails?
- 24. cómo mostrar o leer el archivo docx
- 25. ¿Cómo leer el archivo .arff con R?
- 26. Cómo leer el archivo JSON con Dojo
- 27. Cómo leer el archivo completo con bitstring
- 28. Leer archivo en matriz
- 29. Todo el código en un archivo
- 30. ¿Cómo leer el contenido del archivo en istringstream?
Por lo que vale, esto es algo que la gente a menudo quiere pero realmente no necesita. (Y si el archivo es muy grande, puede obtener una desagradable sorpresa cuando la sordera de un archivo engulle cerca de toda su memoria disponible.) ¿Qué está tratando de lograr en última instancia? – Telemachus
Encontré esto muy útil para trabajar con un archivo que no estaba en un formato diario. Estaba leyendo un archivo con codificación IBM437 y necesitaba dividir el archivo en los personajes extraños para separar los datos valiosos de los que no necesitaba. Para eso, tenía sentido leer el archivo completo y luego crear mis propios saltos de línea donde deberían estar. De lo contrario, estaría pasando en cada línea o cada personaje. En su lugar, podría simplemente usar esto para leer el archivo, y luego usar división para dividir el archivo en cadenas de caracteres imprimibles, y luego usar un bloque para determinar los conjuntos de datos que necesito. – ndw
Recomiendo leer http://stackoverflow.com/questions/25189262/why-is-slurping-a-file-bad. –