Julia 文件读写学习笔记

在 Julia 中,可以使用内置的 FileIO 模块来进行文件的读写操作。FileIO 支持多种文件格式,并提供了一些有用的函数和宏来方便文件读写操作。

读取文件

使用 FileIO.load 函数可以读取多种格式的文件,例如 CSV、TSV、JSON、MAT(MATLAB)等。

读取 CSV 文件

假设我们有一个名为 data.csv 的 CSV 文件,其内容如下:

Copy Code
name,age,gender Alice,25,Female Bob,30,Male Charlie,35,Male

要读取这个 CSV 文件,可以使用以下代码:

juliaCopy Code
using FileIO, CSV data = load("data.csv") |> DataFrame println(data)

输出结果如下:

Copy Code
4×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 Code
using 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 Code
host: localhost port: 8080 username: admin password: 123456

读取 MAT 文件

假设我们有一个名为 data.mat 的 MAT(MATLAB)文件,其中存储了一个名为 x 的矩阵。

要读取这个 MAT 文件,可以使用以下代码:

juliaCopy Code
using 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 Code
using 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 Code
using 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 Code
using FileIO, MAT data = Dict("x" => [1 2; 3 4]) save("output.mat", data)

此时,output.mat 文件中存储了一个名为 x 的矩阵。