> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Session.read_csv()

<span id="atoti.Session.read_csv" />

> Session.read\_csv(<br />
>     *path*: Path | [str](https://docs.python.org/3/library/stdtypes.html#str),<br />
>     /,<br />
>     \*,<br />
>     *array\_separator*: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *client\_side\_encryption*: [ClientSideEncryptionConfig](./atoti.ClientSideEncryptionConfig#atoti.ClientSideEncryptionConfig) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *columns*: Mapping\[[str](https://docs.python.org/3/library/stdtypes.html#str), ColumnName] | Sequence\[ColumnName] = `frozendict({})`,<br />
>     *data\_types*: Mapping\[ColumnName, DataType] = `frozendict({})`,<br />
>     *date\_patterns*: Mapping\[ColumnName, [str](https://docs.python.org/3/library/stdtypes.html#str)] = `frozendict({})`,<br />
>     *default\_values*: Mapping\[ColumnName, Constant | [None](https://docs.python.org/3/library/constants.html#None)] = `frozendict({})`,<br />
>     *encoding*: [str](https://docs.python.org/3/library/stdtypes.html#str) = `'utf-8'`,<br />
>     *keys*: AbstractSet\[ColumnName] | Sequence\[ColumnName] = `frozenset({})`,<br />
>     *partitioning*: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None) = `None`,<br />
>     *process\_quotes*: [bool](https://docs.python.org/3/library/functions.html#bool) | [None](https://docs.python.org/3/library/constants.html#None) = `True`,<br />
>     *separator*: [str](https://docs.python.org/3/library/stdtypes.html#str) | [None](https://docs.python.org/3/library/constants.html#None) = `','`,<br />
>     *table\_name*: TableName,<br />
>     *true\_values*: AbstractSet\[Any] = `frozenset({})`,<br />
>     *false\_values*: AbstractSet\[Any] = `frozenset({})`,<br />
>     *\*\*kwargs*: Unpack\[\_ReadCsvPrivateParameters],<br />
> ) → [Table](./atoti.Table#atoti.Table)

Read a CSV file into a table.

<Note>
  This is just a shortcut for:

  ```python theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
  csv_load = tt.CsvLoad(path, ...)
  data_types = session.tables.infer_data_types(csv_load)
  table = session.create_table(
      table_name,
      data_types={**inferred_data_types, **data_types},
      default_values=...,
      keys=...,
      partitioning=...,
  )
  table.load(csv_load)
  ```

  The longer variant can be refactored to move the [`load()`](./atoti.Table.load#atoti.Table.load) call inside a [`data_transaction()`](./atoti.Tables.data_transaction#atoti.tables.Tables.data_transaction).
</Note>

### Parameters

<h4 id="atoti.Session.read_csv.path">
  *path*
</h4>

See [`atoti.CsvLoad.path`](./atoti.data_load.CsvLoad#atoti.CsvLoad.path).

<h4 id="atoti.Session.read_csv.array_separator">
  *array\_separator*
</h4>

See [`atoti.CsvLoad.array_separator`](./atoti.data_load.CsvLoad#atoti.CsvLoad.array_separator).

<h4 id="atoti.Session.read_csv.client_side_encryption">
  *client\_side\_encryption*
</h4>

See [`atoti.CsvLoad.client_side_encryption`](./atoti.data_load.CsvLoad#atoti.CsvLoad.client_side_encryption).

<h4 id="atoti.Session.read_csv.columns">
  *columns*
</h4>

See [`atoti.CsvLoad.columns`](./atoti.data_load.CsvLoad#atoti.CsvLoad.columns).

<h4 id="atoti.Session.read_csv.data_types">
  *data\_types*
</h4>

The data types for some or all columns of the table.
Data types for non specified columns will be inferred from the first 1,000 lines.

<h4 id="atoti.Session.read_csv.date_patterns">
  *date\_patterns*
</h4>

See [`atoti.CsvLoad.date_patterns`](./atoti.data_load.CsvLoad#atoti.CsvLoad.date_patterns).

<h4 id="atoti.Session.read_csv.default_values">
  *default\_values*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *default\_values*.

<h4 id="atoti.Session.read_csv.encoding">
  *encoding*
</h4>

See [`atoti.CsvLoad.encoding`](./atoti.data_load.CsvLoad#atoti.CsvLoad.encoding).

<h4 id="atoti.Session.read_csv.keys">
  *keys*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *keys*.

<h4 id="atoti.Session.read_csv.partitioning">
  *partitioning*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *partitioning*.

<h4 id="atoti.Session.read_csv.process_quotes">
  *process\_quotes*
</h4>

See [`atoti.CsvLoad.process_quotes`](./atoti.data_load.CsvLoad#atoti.CsvLoad.process_quotes).

<h4 id="atoti.Session.read_csv.separator">
  *separator*
</h4>

See [`atoti.CsvLoad.separator`](./atoti.data_load.CsvLoad#atoti.CsvLoad.separator).

<h4 id="atoti.Session.read_csv.table_name">
  *table\_name*
</h4>

See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *name*.

<h4 id="atoti.Session.read_csv.true_values">
  *true\_values*
</h4>

See [`atoti.CsvLoad.true_values`](./atoti.data_load.CsvLoad#atoti.CsvLoad.true_values).

<h4 id="atoti.Session.read_csv.false_values">
  *false\_values*
</h4>

See [`atoti.CsvLoad.false_values`](./atoti.data_load.CsvLoad#atoti.CsvLoad.false_values).
