Leer un archivo en la memoria de una vez como un conjunto de líneas es solo una llamada a la readlinesfunción:
julia> words = readlines("/usr/share/dict/words")
235886-element Array{String,1}:
"A"
"a"
"aa"
⋮
"zythum"
"Zyzomys"
"Zyzzogeton"
De forma predeterminada, esto descarta las nuevas líneas, pero si desea conservarlas, puede pasar el argumento de la palabra clave keep=true:
julia> words = readlines("/usr/share/dict/words", keep=true)
235886-element Array{String,1}:
"A\n"
"a\n"
"aa\n"
⋮
"zythum\n"
"Zyzomys\n"
"Zyzzogeton\n"
Si tiene un objeto de archivo ya abierto, también puede pasarlo a la readlinesfunción:
julia> open("/usr/share/dict/words") do io
readline(io) # throw out the first line
readlines(io)
end
235885-element Array{String,1}:
"a"
"aa"
"aal"
⋮
"zythum"
"Zyzomys"
"Zyzzogeton"
Esto demuestra la readlinefunción, que lee una sola línea de un objeto de E / S abierto, o cuando se le da un nombre de archivo, abre el archivo y lee la primera línea de él:
julia> readline("/usr/share/dict/words")
"A"
Si no desea cargar el contenido del archivo de una vez (o si está procesando datos de transmisión como desde un socket de red), puede usar la eachlinefunción para obtener un iterador que produzca líneas de una en una:
julia> for word in eachline("/usr/share/dict/words")
if length(word) >= 24
println(word)
end
end
formaldehydesulphoxylate
pathologicopsychological
scientificophilosophical
tetraiodophenolphthalein
thyroparathyroidectomize
La eachlinefunción readlinestambién puede recibir un identificador de archivo abierto para leer líneas. También puede "rodar su propio" iterador abriendo el archivo y llamando readlinerepetidamente:
julia> open("/usr/share/dict/words") do io
while !eof(io)
word = readline(io)
if length(word) >= 24
println(word)
end
end
end
formaldehydesulphoxylate
pathologicopsychological
scientificophilosophical
tetraiodophenolphthalein
thyroparathyroidectomize
Esto es equivalente a lo que eachlinehace por usted y es raro que necesite hacerlo usted mismo, pero si lo necesita, la habilidad está ahí. Para obtener más información sobre cómo leer un archivo carácter por carácter, consulte esta pregunta y respuesta: ¿Cómo usamos julia para leer cada carácter de un archivo .txt, uno a la vez?