や、言語関係など覚えたいもの、覚えるべきものはたくさんある一方で、注目が集まっているから、やってみたい。ということでプログラミング言語としてのを学んでいく。
3. Juliaライブラリの使い方
3.2 ファイル入出力
でのファイル入出力方法、シリアライズ・デシリアライズの方法、そして、ファイルの取り扱い方法を述べる。
3.2.1 ファイルとストリーム
でファイルを扱うには関数を用いる。
# open(filename::String, [mode::String]) -> IOStream file = open(".../test.csv") readlines(file) # 1行ずつ読み込む for line in eachline(file) println(line) end close(file) ################ # openの後に自動的にcloseを呼び出すのにopen(f::Function, args...;kwargs....)がある open(readlines,".../test.csv") open(".../test.csv") do f for line in eachline(f) println(line) end end
mode |
概要 |
詳細 |
---|---|---|
読込 | ||
書込 | ||
追加書込 | ||
読書(指定ファイルが無いとエラー) | ||
読書(指定ファイルが無いと新規作成) | ||
ファイル読込と追加書込 |
3.2.2 シリアライズとデシリアライズ
シリアライズとはオブジェクトをバイトストリームに変換する処理を指す。デシリアライズとはバイトストリームをオブジェクトに変換する処理を指す。では標準モジュールのが用意されている。
# serialize(stream::IO, value) # serialize(filename::String, value) using Serialization dict = Dict("a" => 1, "b" => 2) serialize(".../test2.dat",dict) deserialize(".../test2.dat")
3.2.3 JLD2
入出力に関するの主要パッケージとして、がある。
using JLD2, FileIO data = rand(3,2) save(".../out.jld2", "data", data) load(".../Desktop/out.jld2")
3.2.5 XMLファイルの入出力
を扱うパッケージにはやなど複数ある。
3.3 他言語の呼び出し
は歴史が浅く成熟したライブラリが少ないため、他言語の成熟したライブラリを用いることも一考の余地がある。
3.3.1 Pythonの呼び出し
の機能を用いるにはを用いる。
using PyCall # Pythonを用いる pyver = PyCall.pyversion # PythonのVer. println(pyver) # pythonのabs関数を用いる const pyabs = py"abs" println(pyabs(-1.2)) # PyCallはJuliaのオブジェクトをPythonのオブジェクトに自動的に変更してくれる # Pythonのモジュールを参照する const pymath = pyimport("math") pymath.sin(1.0)