Julia 文件读写学习笔记
在 Julia 中,可以使用内置的 FileIO 模块来进行文件的读写操作。FileIO 支持多种文件格式,并提供了一些有用的函数和宏来方便文件读写操作。
读取文件
使用 FileIO.load
函数可以读取多种格式的文件,例如 CSV、TSV、JSON、MAT(MATLAB)等。
读取 CSV 文件
假设我们有一个名为 data.csv
的 CSV 文件,其内容如下:
Copy Codename,age,gender
Alice,25,Female
Bob,30,Male
Charlie,35,Male
要读取这个 CSV 文件,可以使用以下代码:
juliaCopy Codeusing FileIO, CSV
data = load("data.csv") |> DataFrame
println(data)
输出结果如下:
Copy Code4×3 DataFrame
│ Row │ name │ age │ gender │
│ │ String │ Int64 │ String │
├─────┼─────────┼───────┼─────────┤
│ 1 │ Alice │ 25 │ Female │
│ 2 │ Bob │ 30 │ Male │
│ 3 │ Charlie │ 35 │ Male │
其中,|>
运算符表示管道运算符,将前面的结果传递给后面的函数作为参数。
读取 JSON 文件
假设我们有一个名为 config.json
的 JSON 文件,其内容如下:
jsonCopy Code{
"host": "localhost",
"port": 8080,
"username": "admin",
"password": "123456"
}
要读取这个 JSON 文件,可以使用以下代码:
juliaCopy Codeusing FileIO, JSON
config = load("config.json") |> JSON.parse
println("host: ", config["host"])
println("port: ", config["port"])
println("username: ", config["username"])
println("password: ", config["password"])
输出结果如下:
Copy Codehost: localhost
port: 8080
username: admin
password: 123456
读取 MAT 文件
假设我们有一个名为 data.mat
的 MAT(MATLAB)文件,其中存储了一个名为 x
的矩阵。
要读取这个 MAT 文件,可以使用以下代码:
juliaCopy Codeusing FileIO, MAT
data = load("data.mat") |> matread
println(data["x"])
输出结果类似于以下内容:
Copy Code[1.0 2.0; 3.0 4.0]
写入文件
使用 FileIO.save
函数可以将数据写入到多种格式的文件中。以下以 CSV、JSON 和 MAT 格式文件为例进行介绍。
写入 CSV 文件
假设我们有一个名为 output.csv
的 CSV 文件,要向其中写入数据,可以使用以下代码:
juliaCopy Codeusing FileIO, CSV
data = DataFrame(name=["Alice", "Bob", "Charlie"], age=[25, 30, 35], gender=["Female", "Male", "Male"])
save("output.csv", data)
此时,output.csv
文件的内容如下:
Copy Code,name,age,gender
1,Alice,25,Female
2,Bob,30,Male
3,Charlie,35,Male
写入 JSON 文件
假设我们要将一个字典写入到名为 output.json
的 JSON 文件中,可以使用以下代码:
juliaCopy Codeusing FileIO, JSON
data = Dict("host" => "localhost", "port" => 8080, "username" => "admin", "password" => "123456")
save("output.json", JSON.json(data))
此时,output.json
文件的内容如下:
jsonCopy Code{"port":8080,"username":"admin","host":"localhost","password":"123456"}
写入 MAT 文件
要将一个矩阵写入到名为 output.mat
的 MAT 文件中,可以使用以下代码:
juliaCopy Codeusing FileIO, MAT
data = Dict("x" => [1 2; 3 4])
save("output.mat", data)
此时,output.mat
文件中存储了一个名为 x
的矩阵。