DelimitedFiles
DelimitedFiles.readdlm
── メソッド
readdlm(source,
delim::AbstractChar,
T::Type,
eol::AbstractChar;
header=false,
skipstart=0,
skipblanks=true,
use_mmap,
quotes=true,
dims,
comments=false,
comment_char='#')
ソース source
から行列を読み込みます。col
で区切られる各行は行を表し、各列は delim
で区切られます。ソースに指定できるのはテキストファイル・ストリーム・バイト配列です。メモリマップトファイルを使うには、マップされた部分のバイト配列表現をソースとして渡してください。
T
が数値型なら返り値はその型の配列となります。そのとき数値でない要素は T
が浮動小数点数型のとき NaN
として、それ以外のときゼロとして読み込まれます。数値型以外の便利な T
の値には String
, AbstractString
, Any
があります。
header
が true
だとデータの最初の行がヘッダーとして読み込まれ、data_cells
ではなくタプル (data_cells, header_cells)
が返ります。
skipstart
を指定すると、入力の先頭からそれだけの行が無視されます。
skipblanks
が true
だと、入力に含まれる空行が無視されます。
use_mmap
が true
だと source
が指定するファイルがメモリにマップされます。これにより性能が向上する可能性があります。デフォルトは Windows 以外では true
です。Windows では、ファイルが大きく、一度だけ読み込まれ、書き込みが起きないときに true
を指定するべきです。
quotes
が true
だと、要素を二重引用符 ("
) で囲むことで要素の区切り文字と改行文字を要素に含められるようになります。クオートされた要素に含まれる二重引用符は二重引用符でエスケープされる必要があります。dims
に期待される行と列の個数 (ヘッダー含む) を表すタプルを指定すると、巨大なファイルを読むときに速度が向上する可能性があります。comments
が true
だと、comment_char
で始まる行および任意の行の comment_char
以降のテキストが無視されます。
例
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [5; 6; 7; 8];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end
julia> readdlm("delim_file.txt", '\t', Int, '\n')
4×2 Array{Int64,2}:
1 5
2 6
3 7
4 8
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
── メソッド
readdlm(source, delim::AbstractChar, eol::AbstractChar; options...)
全てのデータが数値型なら、結果は数値配列となります。もしいずれか要素が数値としてパースできなければ、数値と文字列の混じった配列を返します。
DelimitedFiles.readdlm
── メソッド
readdlm(source, delim::AbstractChar, T::Type; options...)
行末を表す区切り文字は \n
とみなされます。
例
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [1.1; 2.2; 3.3; 4.4];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y], ',')
end;
julia> readdlm("delim_file.txt", ',', Float64)
4×2 Array{Float64,2}:
1.0 1.1
2.0 2.2
3.0 3.3
4.0 4.4
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
── メソッド
readdlm(source, delim::AbstractChar; options...)
行末を表す区切り文字は \n
とみなされます。全てのデータが数値型なら、結果は数値配列となります。もしいずれか要素が数値としてパースできなければ、数値と文字列の混じった配列を返します。
例
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [1.1; 2.2; 3.3; 4.4];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y], ',')
end;
julia> readdlm("delim_file.txt", ',')
4×2 Array{Float64,2}:
1.0 1.1
2.0 2.2
3.0 3.3
4.0 4.4
julia> z = ["a"; "b"; "c"; "d"];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x z], ',')
end;
julia> readdlm("delim_file.txt", ',')
4×2 Array{Any,2}:
1 "a"
2 "b"
3 "c"
4 "d"
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
── メソッド
readdlm(source, T::Type; options...)
要素は一つ以上の空白で区切られるとみなされ、行末を表す区切り文字は \n
とみなされます。
例
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [5; 6; 7; 8];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end;
julia> readdlm("delim_file.txt", Int64)
4×2 Array{Int64,2}:
1 5
2 6
3 7
4 8
julia> readdlm("delim_file.txt", Float64)
4×2 Array{Float64,2}:
1.0 5.0
2.0 6.0
3.0 7.0
4.0 8.0
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
── メソッド
readdlm(source; options...)
要素は一つ以上の空白で区切られるとみなされ、行末を表す区切り文字は \n
とみなされます。全てのデータが数値型なら、結果は数値配列となります。もしいずれか要素が数値としてパースできなければ、数値と文字列の混じった配列を返します。
例
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = ["a"; "b"; "c"; "d"];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end;
julia> readdlm("delim_file.txt")
4×2 Array{Any,2}:
1 "a"
2 "b"
3 "c"
4 "d"
julia> rm("delim_file.txt")
DelimitedFiles.writedlm
── 関数
writedlm(f, A, delim='\t'; opts)
A
をテキストとして f
に書き込みます。要素は dlim
で区切られます。A
はベクトル・行列・反復できる行を持つコレクションのいずれかで、f
はファイル名を表す文字列または IO
ストリームです。delim
のデフォルトはタブですが、印字可能な Julia オブジェクトであれば何でも構いません (通常は Char
または AbstractString
です)。
例えば同じ長さの二つのベクトル x
, y
を二列にタブで区切りながら出力したテキストを f
に書き込むには、writedlm(f, [x y])
または writedlm(f, zip(x, y))
とします。
例
julia> using DelimitedFiles
julia> x = [1; 2; 3; 4];
julia> y = [5; 6; 7; 8];
julia> open("delim_file.txt", "w") do io
writedlm(io, [x y])
end
julia> readdlm("delim_file.txt", '\t', Int, '\n')
4×2 Array{Int64,2}:
1 5
2 6
3 7
4 8
julia> rm("delim_file.txt")