Delimited Files

DelimitedFiles.readdlmMethod
readdlm(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の他の有用な値にはStringAbstractString、およびAnyが含まれます。

headertrueの場合、データの最初の行はヘッダーとして読み込まれ、タプル(data_cells, header_cells)が返されます(data_cellsのみではありません)。

skipstartを指定すると、入力の最初の行数を無視します。

skipblankstrueの場合、入力内の空白行は無視されます。

use_mmaptrueの場合、指定されたソースのファイルはメモリマップされ、大きなファイルの場合に速度向上が期待できます。デフォルトはfalseです。Windowsファイルシステムでは、ファイルが一度だけ読み取られ、書き込まれない場合を除き、use_mmaptrueに設定すべきではありません。OSがUnix系であっても、ファイルシステムがWindows系である場合にエッジケースが存在します。

quotestrueの場合、ダブルクォート(")で囲まれた列は改行や列の区切り文字を含むことが許可されます。引用されたフィールド内のダブルクォート文字は、別のダブルクォートでエスケープする必要があります。dimsを期待される行と列のタプル(ヘッダーがある場合はそれも含む)として指定すると、大きなファイルの読み込みが速くなる場合があります。commentstrueの場合、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")
source
DelimitedFiles.readdlmMethod
readdlm(source, delim::AbstractChar, eol::AbstractChar; options...)

すべてのデータが数値である場合、結果は数値配列になります。いくつかの要素が数値として解析できない場合、数値と文字列の異種配列が返されます。

source
DelimitedFiles.readdlmMethod
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 Matrix{Float64}:
 1.0  1.1
 2.0  2.2
 3.0  3.3
 4.0  4.4

julia> rm("delim_file.txt")
source
DelimitedFiles.readdlmMethod
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 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")
source
DelimitedFiles.readdlmMethod
readdlm(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")
source
DelimitedFiles.readdlmMethod
readdlm(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")
source
DelimitedFiles.writedlmFunction
writedlm(f, A, delim='\t'; opts)

A(ベクトル、行列、または反復可能な行の反復可能コレクション)を、指定された区切り文字 delim(デフォルトはタブですが、任意の印刷可能なJuliaオブジェクト、通常は Char または AbstractString)を使用して、f(ファイル名の文字列または IO ストリーム)にテキストとして書き込みます。

例えば、同じ長さの2つのベクトル xy は、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")
source