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) представляет собой одну строку, а элементы разделены заданным разделителем. Источник может быть текстовым файлом, потоком или массивом байтов. Файлы с отображением в память могут быть использованы, передав представление сегмента в виде массива байтов в качестве источника.

Если T является числовым типом, результатом будет массив этого типа, с любыми нечисловыми элементами, представленными как NaN для типов с плавающей запятой или нулем. Другие полезные значения T включают String, AbstractString и Any.

Если header равно true, первая строка данных будет считана как заголовок, и вместо только data_cells будет возвращен кортеж (data_cells, header_cells).

Указание skipstart будет игнорировать соответствующее количество начальных строк из ввода.

Если skipblanks равно true, пустые строки во вводе будут игнорироваться.

Если use_mmap равно true, файл, указанный в source, будет отображен в память для потенциального увеличения скорости, если файл большой. По умолчанию false. В файловой системе Windows use_mmap не следует устанавливать в true, если файл читается только один раз и также не записывается. Существуют некоторые крайние случаи, когда ОС является 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")
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...)

Столбцы предполагается разделять одним или несколькими пробелами. Разделитель конца строки принимается как \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...)

Столбцы предполагается разделять одним или несколькими пробелами. Разделитель конца строки принимается как \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 (вектор, матрица или итерируемая коллекция итерируемых строк) в текстовый файл 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 Matrix{Int64}:
 1  5
 2  6
 3  7
 4  8

julia> rm("delim_file.txt")
source