julia 是在科學(xué)計算中比較新穎的語言,也算作目前科學(xué)計算中的一枝獨秀。今天,探索一下基礎(chǔ)的Julia語言的一些文件讀取的相關(guān)知識。
1. 讀取文件數(shù)據(jù)
在工科學(xué)習(xí)中,經(jīng)常使用一些數(shù)據(jù)模型和算法,而相當(dāng)一部分的數(shù)據(jù)模型和數(shù)據(jù)集都是通過文件進(jìn)行讀取的。并且一個典型計算的典型流是從文件讀取數(shù)據(jù),運行一些計算,然后把結(jié)果寫入記錄用的輸出文件,文件讀、寫或輸入、輸出是非常有用且重要的過程。假設(shè)我們有一個如下這樣的名為basic_data.txt文件,使用基本的open()函數(shù),便可以實現(xiàn)基礎(chǔ)的文件讀取和寫入。
我們使用下列代碼打開這個文件,并進(jìn)行讀?。?/p>
file_name = "basic_data.txt"
datafile = open(file_name)
data = readlines(datafile)
close(datafile)
其中data是一個數(shù)組,每一個數(shù)組元素存放了文件的每一行數(shù)據(jù)。比如data[1]存放的是文件的第一行文本內(nèi)容。所以可以使用for循環(huán)進(jìn)行每一行文本數(shù)據(jù)的輸出。(這里順便說一下,julia的數(shù)組索引是從1開始的,這個需要注意。)
for line in data
println(line)
# 輸出內(nèi)容
# 進(jìn)行每一行的處理
do_somthing()
end
2.進(jìn)行文件寫入
同時,文件寫入可以使用函數(shù)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文件需要借助于其余的包才可以直接調(diào)用。代碼如下:
using DelimitedFiles
csvfilename = "data.csv"
csvdata = readdlm(csvfilename,",",header = true)
data = csvdata[1]
header = csvdata[2]
使用header = ture可以將表頭從所有數(shù)據(jù)中分離出來,并映射到讀取之后得到的數(shù)組中的第二個元素中去。并且以Float64類型的數(shù)組來表示獲取得到的數(shù)據(jù)內(nèi)容,由于csv的原因,其獲取得到的數(shù)據(jù)data本質(zhì)上仍然是數(shù)組或者矩陣。
4.csv文件寫入
對于csv的寫入則可以直接使用原始的寫入函數(shù)進(jìn)行操作,操作比較簡單。代碼如下:
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)