Документация Engee

Запись

# CSV.writeFunction

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.RowWriterType

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) или нет.