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='#')
Lee una matriz de la fuente donde cada línea (separada por eol
) da una fila, con elementos separados por el delimitador dado. La fuente puede ser un archivo de texto, un flujo o un arreglo de bytes. Se pueden usar archivos mapeados en memoria pasando la representación del arreglo de bytes del segmento mapeado como fuente.
Si T
es un tipo numérico, el resultado es un arreglo de ese tipo, con cualquier elemento no numérico como NaN
para tipos de punto flotante, o cero. Otros valores útiles de T
incluyen String
, AbstractString
y Any
.
Si header
es true
, la primera fila de datos se leerá como encabezado y se devolverá la tupla (data_cells, header_cells)
en lugar de solo data_cells
.
Especificar skipstart
ignorará el número correspondiente de líneas iniciales de la entrada.
Si skipblanks
es true
, las líneas en blanco en la entrada serán ignoradas.
Si use_mmap
es true
, el archivo especificado por source
se mapea en memoria para posibles aceleraciones si el archivo es grande. El valor predeterminado es false
. En un sistema de archivos de Windows, use_mmap
no debe establecerse en true
a menos que el archivo solo se lea una vez y tampoco se escriba. Existen algunos casos límite donde un sistema operativo es similar a Unix pero el sistema de archivos es similar a Windows.
Si quotes
es true
, se permite que las columnas encerradas entre comillas dobles (") contengan nuevas líneas y delimitadores de columna. Los caracteres de comillas dobles dentro de un campo entre comillas deben escaparse con otra comilla doble. Especificar dims
como una tupla de las filas y columnas esperadas (incluyendo el encabezado, si lo hay) puede acelerar la lectura de archivos grandes. Si comments
es true
, las líneas que comienzan con comment_char
y el texto que sigue a comment_char
en cualquier línea son ignoradas.
Ejemplos
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...)
Si todos los datos son numéricos, el resultado será un arreglo numérico. Si algunos elementos no se pueden analizar como números, se devuelve un arreglo heterogéneo de números y cadenas.
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar, T::Type; options...)
El delimitador de fin de línea se toma como \n
.
Ejemplos
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...)
El delimitador de fin de línea se toma como \n
. Si todos los datos son numéricos, el resultado será un array numérico. Si algunos elementos no se pueden analizar como números, se devuelve un array heterogéneo de números y cadenas.
Ejemplos
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...)
Se asume que las columnas están separadas por uno o más espacios en blanco. El delimitador de fin de línea se toma como \n
.
Ejemplos
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...)
Se asume que las columnas están separadas por uno o más espacios en blanco. El delimitador de fin de línea se toma como \n
. Si todos los datos son numéricos, el resultado será un arreglo numérico. Si algunos elementos no se pueden analizar como números, se devuelve un arreglo heterogéneo de números y cadenas.
Ejemplos
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)
Escribe A
(un vector, matriz o una colección iterable de filas iterables) como texto en f
(ya sea una cadena de nombre de archivo o un flujo IO
) utilizando el delimitador dado delim
(que por defecto es tabulador, pero puede ser cualquier objeto imprimible de Julia, típicamente un Char
o AbstractString
).
Por ejemplo, dos vectores x
e y
de la misma longitud se pueden escribir como dos columnas de texto delimitado por tabuladores en f
ya sea con writedlm(f, [x y])
o con writedlm(f, zip(x, y))
.
Ejemplos
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")