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='#')
Liest eine Matrix aus der Quelle, wobei jede Zeile (getrennt durch eol
) eine Reihe ergibt, mit Elementen, die durch den angegebenen Trenner getrennt sind. Die Quelle kann eine Textdatei, ein Stream oder ein Byte-Array sein. Speicher-mapped Dateien können verwendet werden, indem die Byte-Array-Darstellung des gemappten Segments als Quelle übergeben wird.
Wenn T
ein numerischer Typ ist, ist das Ergebnis ein Array dieses Typs, wobei alle nicht-numerischen Elemente als NaN
für Fließkommatypen oder null dargestellt werden. Andere nützliche Werte von T
sind String
, AbstractString
und Any
.
Wenn header
auf true
gesetzt ist, wird die erste Datenzeile als Header gelesen und das Tupel (data_cells, header_cells)
wird anstelle von nur data_cells
zurückgegeben.
Die Angabe von skipstart
ignoriert die entsprechende Anzahl von Anfangszeilen aus der Eingabe.
Wenn skipblanks
auf true
gesetzt ist, werden leere Zeilen in der Eingabe ignoriert.
Wenn use_mmap
auf true
gesetzt ist, wird die durch source
angegebene Datei für potenzielle Geschwindigkeitsvorteile im Speicher gemappt, wenn die Datei groß ist. Standard ist false
. Auf einem Windows-Dateisystem sollte use_mmap
nicht auf true
gesetzt werden, es sei denn, die Datei wird nur einmal gelesen und auch nicht beschrieben. Es gibt einige Randfälle, in denen ein Betriebssystem Unix-ähnlich ist, das Dateisystem jedoch Windows-ähnlich ist.
Wenn quotes
auf true
gesetzt ist, dürfen Spalten, die in doppelte Anführungszeichen (") eingeschlossen sind, neue Zeilen und Spaltentrenner enthalten. Doppelte Anführungszeichen innerhalb eines zitierten Feldes müssen mit einem weiteren doppelten Anführungszeichen escaped werden. Die Angabe von dims
als Tupel der erwarteten Zeilen und Spalten (einschließlich Header, falls vorhanden) kann das Lesen großer Dateien beschleunigen. Wenn comments
auf true
gesetzt ist, werden Zeilen, die mit comment_char
beginnen, und der Text, der comment_char
in einer Zeile folgt, ignoriert.
Beispiele
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...)
Wenn alle Daten numerisch sind, wird das Ergebnis ein numerisches Array sein. Wenn einige Elemente nicht als Zahlen geparst werden können, wird ein heterogenes Array aus Zahlen und Strings zurückgegeben.
DelimitedFiles.readdlm
— Methodreaddlm(source, delim::AbstractChar, T::Type; options...)
Das Zeilenende-Trennzeichen wird als \n
betrachtet.
Beispiele
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...)
Das Zeilenende-Trennzeichen wird als \n
betrachtet. Wenn alle Daten numerisch sind, wird das Ergebnis ein numerisches Array sein. Wenn einige Elemente nicht als Zahlen geparst werden können, wird ein heterogenes Array aus Zahlen und Strings zurückgegeben.
Beispiele
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...)
Die Spalten werden als durch ein oder mehrere Leerzeichen getrennt angenommen. Das Zeilenende wird als \n
betrachtet.
Beispiele
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...)
Die Spalten werden als durch ein oder mehrere Leerzeichen getrennt angenommen. Das Zeilenende wird als \n
betrachtet. Wenn alle Daten numerisch sind, wird das Ergebnis ein numerisches Array sein. Wenn einige Elemente nicht als Zahlen geparst werden können, wird ein heterogenes Array aus Zahlen und Strings zurückgegeben.
Beispiele
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)
Schreibt A
(einen Vektor, eine Matrix oder eine durchlaufbare Sammlung von durchlaufbaren Zeilen) als Text in f
(entweder ein Dateinamen-String oder ein IO
-Stream) unter Verwendung des angegebenen Trennzeichens delim
(das standardmäßig Tabulator ist, aber jedes druckbare Julia-Objekt sein kann, typischerweise ein Char
oder AbstractString
).
Zum Beispiel können zwei Vektoren x
und y
derselben Länge als zwei Spalten von tabulatorgetrenntem Text in f
geschrieben werden, entweder durch writedlm(f, [x y])
oder durch writedlm(f, zip(x, y))
.
Beispiele
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")