Проблема в вашем коде в том, что вы не возвращаете io
из функции.Вот исправление с некоторой очисткой кода (в частности, отметим, что в Base определена функция readlines
, поэтому лучше использовать другое имя функции):
function readlines2(file_path::String)
io = IOBuffer()
open(file_path) do file
l0 = readline(file)
for line in eachline(file)
println(io, line)
end
end
io
end
Теперь вы можете запустить ее, чтобы получить IOBuffer
как возвращаемое значение.Обратите внимание, что обычно вам нужно преобразовать содержимое этой IOBuffer
в строку, вы можете сделать это, используя функции take!
и String
, например:
io = readlines2("your_file.ext")
str = String(take!(io))
Теперь str
содержитсчитанные данные в виде строки.
Наконец, вы можете предпочесть использовать встроенную функцию readlines
и просто удалить первую запись возвращаемого вектора, а затем join
оставшиеся значения, например так:
join(readlines("your_file.ext", keep=true)[2:end])
для получения идентичного результата (это, вероятно, немного медленнее, но проще).