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

# atoti.Session.read_csv()

#### Session.read\_csv(path, /, \*, array\_separator=None, client\_side\_encryption=None, columns=frozendict(\{}), data\_types=frozendict(\{}), date\_patterns=frozendict(\{}), default\_values=frozendict(\{}), encoding='utf-8', keys=frozenset(\{}), partitioning=None, process\_quotes=True, separator=',', table\_name, true\_values=frozenset(\{}), false\_values=frozenset(\{}), \*\*kwargs)

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.Tables.data_transaction#atoti.tables.Tables.data_transaction).
</Note>

* **Parameters:**
  * **array\_separator** ([*str*](https://docs.python.org/3/library/stdtypes.html#str) *|* *None*) – See [`atoti.CsvLoad.array_separator`](./atoti.data_load.csv_load#atoti.CsvLoad.array_separator).
  * **client\_side\_encryption** ([*ClientSideEncryptionConfig*](./atoti.client_side_encryption_config#atoti.ClientSideEncryptionConfig) *|* *None*) – See [`atoti.CsvLoad.client_side_encryption`](./atoti.data_load.csv_load#atoti.CsvLoad.client_side_encryption).
  * **columns** (*Mapping* *\[*[*str*](https://docs.python.org/3/library/stdtypes.html#str) *,* *ColumnName* *]*  *|* *Sequence* \*\[\**ColumnName* *]*) – See [`atoti.CsvLoad.columns`](./atoti.data_load.csv_load#atoti.CsvLoad.columns).
  * **data\_types** (*Mapping* \*\[\**ColumnName* *,* *DataType* *]*) – 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.
  * **date\_patterns** (*Mapping* \*\[\**ColumnName* *,* [*str*](https://docs.python.org/3/library/stdtypes.html#str) *]*) – See [`atoti.CsvLoad.date_patterns`](./atoti.data_load.csv_load#atoti.CsvLoad.date_patterns).
  * **default\_values** (*Mapping* \*\[\**ColumnName* *,* *Constant* *|* *None* *]*) – See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *default\_values*.
  * **encoding** ([*str*](https://docs.python.org/3/library/stdtypes.html#str)) – See [`atoti.CsvLoad.encoding`](./atoti.data_load.csv_load#atoti.CsvLoad.encoding).
  * **false\_values** (*AbstractSet* \*\[\**Any* *]*) – See [`atoti.CsvLoad.false_values`](./atoti.data_load.csv_load#atoti.CsvLoad.false_values).
  * **keys** (*AbstractSet* \*\[\**ColumnName* *]*  *|* *Sequence* \*\[\**ColumnName* *]*) – See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *keys*.
  * **partitioning** ([*str*](https://docs.python.org/3/library/stdtypes.html#str) *|* *None*) – See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *partitioning*.
  * **path** (*Path* *|* [*str*](https://docs.python.org/3/library/stdtypes.html#str)) – See [`atoti.CsvLoad.path`](./atoti.data_load.csv_load#atoti.CsvLoad.path).
  * **process\_quotes** ([*bool*](https://docs.python.org/3/library/functions.html#bool) *|* *None*) – See [`atoti.CsvLoad.process_quotes`](./atoti.data_load.csv_load#atoti.CsvLoad.process_quotes).
  * **separator** ([*str*](https://docs.python.org/3/library/stdtypes.html#str) *|* *None*) – See [`atoti.CsvLoad.separator`](./atoti.data_load.csv_load#atoti.CsvLoad.separator).
  * **table\_name** (*TableName*) – See [`create_table()`](./atoti.Session.create_table#atoti.Session.create_table)’s *name*.
  * **true\_values** (*AbstractSet* \*\[\**Any* *]*) – See [`atoti.CsvLoad.true_values`](./atoti.data_load.csv_load#atoti.CsvLoad.true_values).
  * **kwargs** (*Unpack* *\[* *\_ReadCsvPrivateParameters* *]*)
* **Return type:**
  [Table](./atoti.table#atoti.Table)
