Leer un archivo en la memoria de una vez como un conjunto de líneas es solo una llamada a la readlines
funció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 readlines
funció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 readline
funció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 eachline
funció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 eachline
función readlines
también puede recibir un identificador de archivo abierto para leer líneas. También puede "rodar su propio" iterador abriendo el archivo y llamando readline
repetidamente:
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 eachline
hace 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?