julia 是在科学计算中比较新颖的语言,也算作目前科学计算中的一枝独秀。今天,探索一下基础的Julia语言的一些文件读取的相关知识。
1. 读取文件数据
在工科学习中,经常使用一些数据模型和算法,而相当一部分的数据模型和数据集都是通过文件进行读取的。并且一个典型计算的典型流是从文件读取数据,运行一些计算,然后把结果写入记录用的输出文件,文件读、写或输入、输出是非常有用且重要的过程。假设我们有一个如下这样的名为basic_data.txt文件,使用基本的open()
函数,便可以实现基础的文件读取和写入。
我们使用下列代码打开这个文件,并进行读取:
file_name = "basic_data.txt"
datafile = open(file_name)
data = readlines(datafile)
close(datafile)
其中data是一个数组,每一个数组元素存放了文件的每一行数据。比如data[1]存放的是文件的第一行文本内容。所以可以使用for循环进行每一行文本数据的输出。(这里顺便说一下,julia的数组索引是从1开始的,这个需要注意。)
for line in data
println(line)
# 输出内容
# 进行每一行的处理
do_somthing()
end
2.进行文件写入
同时,文件写入可以使用函数println(),如下所示:
outputfile = "uotputfile.txt"
outputfiledata = open(outputfile,"w")
println(outputfiledata,"This is a pen.")
println(outputfiledata,"This is a pencile.")
close(outputfiledata)
3.csv文件读取
读取csv文件需要借助于其余的包才可以直接调用。代码如下:
using DelimitedFiles
csvfilename = "data.csv"
csvdata = readdlm(csvfilename,",",header = true)
data = csvdata[1]
header = csvdata[2]
使用header = ture
可以将表头从所有数据中分离出来,并映射到读取之后得到的数组中的第二个元素中去。并且以Float64类型的数组来表示获取得到的数据内容,由于csv的原因,其获取得到的数据data本质上仍然是数组或者矩阵。
4.csv文件写入
对于csv的写入则可以直接使用原始的写入函数进行操作,操作比较简单。代码如下:
value1 = ["computer","zhangsan"]
value2 = ["computer","lisi"]
filename = "student.csv"
filedata = open(filename,"w")
println(filedata,"subject,name")
for i in 1:length(value1)
println("$value1[i],$value2[i]")
end
close(filedata)