Ler um arquivo na memória de uma só vez como uma matriz de linhas é apenas uma chamada para a readlines
função:
julia> words = readlines("/usr/share/dict/words")
235886-element Array{String,1}:
"A"
"a"
"aa"
⋮
"zythum"
"Zyzomys"
"Zyzzogeton"
Por padrão, isso descarta as novas linhas, mas se você deseja mantê-las, pode passar o argumento da palavra-chave 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 você já possui um objeto de arquivo aberto, também pode passar para a readlines
função:
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"
Isso demonstra a readline
função, que lê uma única linha de um objeto de E / S aberto ou, quando recebe um nome de arquivo, abre o arquivo e lê a primeira linha a partir dele:
julia> readline("/usr/share/dict/words")
"A"
Se você não deseja carregar o conteúdo do arquivo de uma só vez (ou se estiver processando dados de streaming como de um soquete de rede), poderá usar a eachline
função para obter um iterador que produza linhas uma por vez:
julia> for word in eachline("/usr/share/dict/words")
if length(word) >= 24
println(word)
end
end
formaldehydesulphoxylate
pathologicopsychological
scientificophilosophical
tetraiodophenolphthalein
thyroparathyroidectomize
A eachline
função readlines
também pode receber um identificador de arquivo aberto para leitura de linhas. Você também pode "rolar o seu próprio" iterador, abrindo o arquivo e chamando 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
Isso é equivalente ao que eachline
faz por você e é raro precisar fazer isso sozinho, mas se você precisar, a capacidade estará lá. Para obter mais informações sobre como ler um arquivo caractere por caractere, consulte esta pergunta e resposta: Como usamos julia para ler cada caractere de um arquivo .txt, um de cada vez?