在 Julia 中保存数据

Save data in Julia

是否有一种标准方法可以轻松地在 Julia 中保存任何类型的数据。这次我有一个包含两个数组的元组,稍后我想再次使用它。像这样。

a = [1,2,34]
b = [1,2,3,4,5]

save((a,b), "ab")
a, b = load("ab")

有很多场景,具体取决于您要将数据存储多长时间

  1. 序列化(这对于短时间段来说是完美的,对于较长时间段的包更新其内部数据结构,您可能无法读取文件)
julia> using Serialization

julia> serialize("file.dat",a)
24

julia> deserialize("file.dat")
3-element Vector{Int64}:
  1
  2
 34
  1. 带分隔符的文件(请注意,可能需要对输出进行额外处理)
julia> using DelimitedFiles

julia> writedlm("file.csv", a)

julia> readdlm("file.csv", '\t' ,Int)
3×1 Matrix{Int64}:
  1
  2
 34
  1. JSON(适合长期使用)
julia> using JSON3

julia> JSON3.write("file.json",a)
"file.json"

julia> open("file.json") do f; JSON3.read(f,Vector{Int}); end
3-element Vector{Int64}:
  1
  2
 34

其他值得一提的库(取决于数据格式)包括用于保存数据帧的 CSV.jl 和用于二进制 JSON 文件的 BSON.jl

您可以使用 JLD2.jl to save and load arbitrary Julia objects. This is more likely to work for long term storage across different Julia versions than the Serialization 标准库。

using JLD2

x = (1, "a")
save_object("mytuple.jld2", x)
julia> load_object("mytuple.jld2")
(1, "a")

有关其他功能,请查看 docs