Delimited Files
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar, T::Type, eol::AbstractChar; header=false, skipstart=0, skipblanks=true, use_mmap, quotes=true, dims, comments=false, comment_char='#')
ソースから行列を読み込みます。各行(eol
で区切られた)には1行分のデータがあり、要素は指定された区切り文字で分けられています。ソースはテキストファイル、ストリーム、またはバイト配列であることができます。メモリマップファイルは、マップされたセグメントのバイト配列表現をソースとして渡すことで使用できます。
T
が数値型の場合、結果はその型の配列であり、非数値要素は浮動小数点型の場合はNaN
、またはゼロとして扱われます。T
の他の有用な値にはString
、AbstractString
、およびAny
が含まれます。
header
がtrue
の場合、データの最初の行はヘッダーとして読み込まれ、タプル(data_cells, header_cells)
が返されます(data_cells
のみではありません)。
skipstart
を指定すると、入力の最初の行数を無視します。
skipblanks
がtrue
の場合、入力内の空白行は無視されます。
use_mmap
がtrue
の場合、指定されたソースのファイルはメモリマップされ、大きなファイルの場合に速度向上が期待できます。デフォルトはfalse
です。Windowsファイルシステムでは、ファイルが一度だけ読み取られ、書き込まれない場合を除き、use_mmap
をtrue
に設定すべきではありません。OSがUnix系であっても、ファイルシステムがWindows系である場合にエッジケースが存在します。
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 Matrix{Int64}:
1 5
2 6
3 7
4 8
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar, eol::AbstractChar; options...)
すべてのデータが数値である場合、結果は数値配列になります。いくつかの要素が数値として解析できない場合、数値と文字列の異種配列が返されます。
DelimitedFiles.readdlm
— Methodreaddlm(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 Matrix{Float64}:
1.0 1.1
2.0 2.2
3.0 3.3
4.0 4.4
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(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 Matrix{Float64}:
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 Matrix{Any}:
1 "a"
2 "b"
3 "c"
4 "d"
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(source, T::Type; options...)
列は1つ以上の空白で区切られていると仮定されます。行の終わりの区切り文字は \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 Matrix{Int64}:
1 5
2 6
3 7
4 8
julia> readdlm("delim_file.txt", Float64)
4×2 Matrix{Float64}:
1.0 5.0
2.0 6.0
3.0 7.0
4.0 8.0
julia> rm("delim_file.txt")
DelimitedFiles.readdlm
— Methodreaddlm(source; options...)
列は1つ以上の空白で区切られていると仮定されます。行の終わりの区切り文字は\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 Matrix{Any}:
1 "a"
2 "b"
3 "c"
4 "d"
julia> rm("delim_file.txt")
DelimitedFiles.writedlm
— Functionwritedlm(f, A, delim='\t'; opts)
A
(ベクトル、行列、または反復可能な行の反復可能コレクション)を、指定された区切り文字 delim
(デフォルトはタブですが、任意の印刷可能なJuliaオブジェクト、通常は Char
または AbstractString
)を使用して、f
(ファイル名の文字列または IO
ストリーム)にテキストとして書き込みます。
例えば、同じ長さの2つのベクトル x
と y
は、writedlm(f, [x y])
または writedlm(f, zip(x, y))
のいずれかを使用して、タブ区切りのテキストの2列として f
に書き込むことができます。
例
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 Matrix{Int64}:
1 5
2 6
3 7
4 8
julia> rm("delim_file.txt")