Читання файлу в пам'яті відразу як масив рядків - це лише дзвінок до readlines
функції:
julia> words = readlines("/usr/share/dict/words")
235886-element Array{String,1}:
"A"
"a"
"aa"
⋮
"zythum"
"Zyzomys"
"Zyzzogeton"
За замовчуванням це відкидає нові рядки, але якщо ви хочете зберегти їх, ви можете передати аргумент ключового слова 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"
Якщо у вас вже відкритий файл-об’єкт, ви також можете передати його readlines
функції:
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"
Це демонструє readline
функцію, яка читає один рядок із відкритого об'єкта вводу / виводу або, коли йому надається ім'я файлу, відкриває файл і зчитує з нього перший рядок:
julia> readline("/usr/share/dict/words")
"A"
Якщо ви не хочете одразу завантажувати вміст файлу (або ви обробляєте потокові дані, наприклад, з мережевого сокета), ви можете скористатися eachline
функцією, щоб отримати ітератор, який створює по черзі рядки:
julia> for word in eachline("/usr/share/dict/words")
if length(word) >= 24
println(word)
end
end
formaldehydesulphoxylate
pathologicopsychological
scientificophilosophical
tetraiodophenolphthalein
thyroparathyroidectomize
eachline
Функція може, наприклад readlines
, також може бути дан відкритий дескриптор файлу для читання рядка з. Ви також можете "прокатати власний" ітератор, відкриваючи файл та readline
повторюючи дзвінки :
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
Це еквівалентно тому, що eachline
робить для вас, і рідко потрібно робити це самостійно, але якщо вам потрібно, ці можливості є. Для отримання додаткової інформації про читання символу файлу за символом див. Це запитання та відповідь: Як ми можемо використовувати Юлію для читання кожного символу .txt-файлу, по одному?