Leggere un file in memoria tutto in una volta come un array di linee è solo una chiamata alla readlinesfunzione:
julia> words = readlines("/usr/share/dict/words")
235886-element Array{String,1}:
"A"
"a"
"aa"
⋮
"zythum"
"Zyzomys"
"Zyzzogeton"
Per impostazione predefinita, questo elimina le nuove righe ma se si desidera mantenerle, è possibile passare l'argomento della parola chiave 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"
Se hai già un oggetto file aperto, puoi anche passarlo alla readlinesfunzione:
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"
Ciò dimostra la readlinefunzione, che legge una singola riga da un oggetto I / O aperto, o quando viene assegnato un nome file, apre il file e legge la prima riga da esso:
julia> readline("/usr/share/dict/words")
"A"
Se non vuoi caricare tutti i contenuti del file contemporaneamente (o se stai elaborando dati di streaming come da un socket di rete), puoi utilizzare la eachlinefunzione per ottenere un iteratore che produce linee una alla volta:
julia> for word in eachline("/usr/share/dict/words")
if length(word) >= 24
println(word)
end
end
formaldehydesulphoxylate
pathologicopsychological
scientificophilosophical
tetraiodophenolphthalein
thyroparathyroidectomize
Alla eachlinefunzione può readlinesanche essere assegnato un handle di file aperto da cui leggere le righe. Puoi anche "ruotare il tuo" iteratore aprendo il file e chiamando readlineripetutamente:
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
Ciò equivale a quello che eachlinefa per te ed è raro doverlo fare da soli, ma se è necessario, l'abilità è lì. Per ulteriori informazioni sulla lettura di un carattere carattere per carattere, vedere questa domanda e risposta: Come possiamo usare julia per leggere ogni carattere di un file .txt, uno alla volta?