File 如何在1.1.0中读取文件时使用IOBuffer?
我是朱莉娅的新手!对不起,如果事情是琐碎的或愚蠢的! 我正在尝试使用readlines.jl中的以下代码读取文件:File 如何在1.1.0中读取文件时使用IOBuffer?,file,io,julia,File,Io,Julia,我是朱莉娅的新手!对不起,如果事情是琐碎的或愚蠢的! 我正在尝试使用readlines.jl中的以下代码读取文件: #! /opt/julia/julia-1.1.0/bin/Julia function readlines(file_path::String) io = IOBuffer() global file try file = open(file_path) l0 = readline(file) for lin
#! /opt/julia/julia-1.1.0/bin/Julia
function readlines(file_path::String)
io = IOBuffer()
global file
try
file = open(file_path)
l0 = readline(file)
for line in eachline(file)
println(io, line)
end
catch err
println("Error: $err")
finally
close(file)
end
end
readlines("/opt/julia/julia-1.1.0/LICENSE.md")
执行时,$/home/julia/readlines.jl不会打印文件的内容
请帮助我在文件读取中使用IOBuffer 代码中的问题是没有从函数返回
io
。下面是一些代码清理的修复(特别注意,readlines
函数是在Base中定义的,因此最好使用另一个函数名):
现在您可以运行它来获取IOBuffer
作为返回值。请注意,通常您希望将此IOBuffer
ino的内容转换为字符串,您可以使用take
和字符串
的功能如下:
io = readlines2("your_file.ext")
str = String(take!(io))
join(readlines("your_file.ext", keep=true)[2:end])
现在str
将读入的数据作为字符串包含
最后,您可能更喜欢使用内置的readlines
函数,只需删除返回向量的第一个条目,然后join
如下所示的剩余值:
io = readlines2("your_file.ext")
str = String(take!(io))
join(readlines("your_file.ext", keep=true)[2:end])
以获得相同的结果(这可能稍微慢一点,但更简单)