Julia ---- 普通文本文件读取

雨燕双飞 提交于 2020-02-03 01:57:37

1、功能概述

#读取CSV 或者Excel 文件 ,Julia 都有成熟的工具包,如CSV.jl 读取csv文件并转为DataFrame
#但是类似txt等简单的文本文件读取,是需要自己处理的。下面提供了几种读取方法
#要使用到函数有
#readline() 其中readline()读取一行数据
#readlines() 一次将所有行读取到内存
#eachline(),eachline可以获取一个迭代器
#open() close() ,可以读取并关闭文件

#write()可以写入文件,但是会覆盖文件的内容,暂时没有找到追加的操作

 

2、代码样例

# 默认情况下,这将丢弃换行符,
words = readlines("D:/Julia/测试数据.txt")
words = readline("D:/Julia/测试数据.txt")


# 但如果要保留它们,可以传递关键字参数 keep=true:
words = readlines("D:/Julia/测试数据.txt", keep=true)

#如果已经打开了一个文件,也可以传递给readlines函数,下面的代码块会丢弃首行文本
open("D:/Julia/测试数据.txt") do io
           readline(io) #丢弃首行
           readlines(io)
end


#如果不想一次加载所有文件内容,则可以使用eachline函数获取一个迭代器,该迭代器每次获取一行,这适合处理来自网络套接字的流式数据
for word in eachline("D:/Julia/测试数据.txt")
    if length(word) >= 24
        println(word)
     end
end

#这也是一种迭代方式,这种方式会自动关闭文件
open("D:/Julia/测试数据.txt") do io
    while !eof(io)
        word = readline(io)
        if length(word) >= 24
            println(word)
        end
    end
end

#下面会逐个字符读取文件 每个字符都是Unicode UTF-8编码
file = open("D:/Julia/测试数据.txt","r")
while !eof(file)
    c = read(file, Char)
    println(c)
end
#需要手动关闭文件
close(file)

#下面会逐个字符读取文件,不过得到的都是Unicode编码值
file = open("D:/Julia/测试数据.txt","w")

while !eof(file)
    i = read(file, UInt8)
    println(i)
end
#这里需要手动关闭文件
close(file)

#用Char 可以再次转换为字符
Char(116)
# 得到 t

#会覆盖文件里面的所有内容,目前没有找到追加的方式
write(file,"常用字符串打印")

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!