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