Запись
#
CSV.write
— Function
CSV.write(file, table; kwargs...) => file
table |> CSV.write(file; kwargs...) => file
Записывает входные данные интерфейса Tables.jl в CSV-файл, заданный в качестве аргумента IO
или типа String
/FilePaths.jl, представляющего имя файла, в который будет выполняться запись. В качестве альтернативы CSV.RowWriter
создает итератор строк, выдающий строку в формате CSV для каждой строки входной таблицы.
Поддерживаются следующие именованные аргументы.
-
bufsize::Int=2^22
: длина буфера, используемого при записи каждой строки в формате CSV. Значение по умолчанию — 4 МБ. Если размер строки превышаетbufsize
, возникает ошибка. -
delim::Union{Char, String}=','
: символ или строка, выводимые в качестве разделителя файла. -
quotechar::Char='"'
: символ ASCII, используемый для заключения в кавычки текстовых полей, которые могут содержать разделители или новые строки. -
openquotechar::Char
: вместоquotechar
используйтеopenquotechar
иclosequotechar
для поддержки различных символов начальных и конечных кавычек. -
escapechar::Char='"'
: символ ASCII, используемый для экранирования символов кавычек в текстовом поле. -
missingstring::String=""
: строка для вывода значенийmissing
. -
dateformat=Dates.default_format(T)
: строка формата даты, используемая для вывода столбцовDate
&DateTime
. -
append=false
: следует ли добавлять запись к существующему файлу/вводу-выводу. Если задано значениеtrue
, по умолчанию имена столбцов записываться не будут. -
compress=false
: сжатие записанного вывода с использованием стандартной программы сжатия GZIP (доступной в пакете CodecZlib.jl). Обратите внимание, что поток сжатия всегда можно указать в качестве первого аргумента file для поддержки других форм сжатия. Передачаcompress=true
выполняется просто для удобства, чтобы избежать необходимости вручную настраивать GzipCompressorStream. -
writeheader=!append
: записывать ли начальную строку разделенных имен столбцов. По умолчанию запись не выполняется, если задано добавление. -
header
: передача списка имен столбцов (символов или строк) для использования вместо имен столбцов входной таблицы. -
newline='\n'
: символ или строка, используемая для разделения строк (строк в CSV-файле). -
quotestrings=false
: следует ли принудительно заключать все строки в кавычки или нет. -
decimal='.'
: символ, используемый в качестве десятичного разделителя при записи чисел с плавающей запятой. -
transform=(col,val)->val
: функция, применяемая к каждой ячейке. Например, можно преобразовать все значенияnothing
вmissing
с помощью(col, val) -> something(val, missing)
. -
bom=false
: следует ли записывать ли заголовок BOM UTF-8 (0xEF 0xBB 0xBF) или нет. -
partition::Bool=false
: при передачеtrue
ожидается, что аргументtable
реализуетTables.partitions
, а аргументfile
может быть либо индексируемой коллекциейIO
, либо файломString
, либо одним файломString
, к имени которого будет добавлен индекс.
Примеры
using CSV, Tables, DataFrames
# запись DataFrame в CSV-файл
df = DataFrame(rand(10, 10), :auto)
CSV.write("data.csv", df)
# запись матрицы в IOBuffer в памяти
io = IOBuffer()
mat = rand(10, 10)
CSV.write(io, Tables.table(mat))
#
CSV.RowWriter
— Type
CSV.RowWriter(table; kwargs...)
Создает итератор, который выдает строки в формате CSV для каждой строки входной таблицы.
Поддерживаются следующие именованные аргументы.
-
bufsize::Int=2^22
: длина буфера, используемого при записи каждой строки в формате CSV. Значение по умолчанию — 4 МБ. Если размер строки превышаетbufsize
, возникает ошибка. -
delim::Union{Char, String}=','
: символ или строка, выводимые в качестве разделителя файла. -
quotechar::Char='"'
: символ ASCII, используемый для заключения в кавычки текстовых полей, которые могут содержать разделители или новые строки. -
openquotechar::Char
: вместоquotechar
используйтеopenquotechar
иclosequotechar
для поддержки различных символов начальных и конечных кавычек. -
escapechar::Char='"'
: символ ASCII, используемый для экранирования символов кавычек в текстовом поле. -
missingstring::String=""
: строка для вывода значенийmissing
. -
dateformat=Dates.default_format(T)
: строка формата даты, используемая для вывода столбцовDate
&DateTime
. -
header
: передача списка имен столбцов (символов или строк) для использования вместо имен столбцов входной таблицы. -
newline='\n'
: символ или строка, используемая для разделения строк (строк в CSV-файле). -
quotestrings=false
: следует ли принудительно заключать все строки в кавычки или нет. -
decimal='.'
: символ, используемый в качестве десятичного разделителя при записи чисел с плавающей запятой. -
transform=(col,val)->val
: функция, применяемая к каждой ячейке. Например, можно преобразовать все значенияnothing
вmissing
с помощью(col, val) -> something(val, missing)
. -
bom=false
: следует ли записывать ли заголовок BOM UTF-8 (0xEF 0xBB 0xBF) или нет.