# FileWriter

## class FileWriter(file: IO)[source]

Bases: [`Generic`](https://docs.python.org/3/library/typing.html#typing.Generic "(in Python v3.15)"), [`ABC`](https://docs.python.org/3/library/abc.html#abc.ABC "(in Python v3.15)")

Base class for format writers.

Every writer needs a writable stream. The JSONL, CSV, and Avro writers write at the stream’s
current position. [`JsonFileWriter`](https://dev.nominal.io/instro/ref/library/instro.lib.publishers.files.JsonFileWriter.md#instro.lib.publishers.files.JsonFileWriter "instro.lib.publishers.files.JsonFileWriter") rewrites its whole file on each write.

Variables:
:   - **mode** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)")) – Mode [`FilePublisher`](https://dev.nominal.io/instro/ref/library/instro.lib.publishers.files.FilePublisher.md#instro.lib.publishers.files.FilePublisher "instro.lib.publishers.files.FilePublisher") uses to open this writer’s file.
    - **newline** ([*str*](https://docs.python.org/3/builtins/stdtypes.html#str "(in Python v3.15)") *|* *None*) – `newline` argument [`FilePublisher`](https://dev.nominal.io/instro/ref/library/instro.lib.publishers.files.FilePublisher.md#instro.lib.publishers.files.FilePublisher "instro.lib.publishers.files.FilePublisher") uses to open this writer’s file.

Wrap an open stream.

Parameters:
:   **file** (*IO**[**AnyStr**]*)

    Stream that receives the records. Text or binary, per the format.

Raises:
:   [**ValueError**](https://docs.python.org/3/builtins/exceptions.html#ValueError "(in Python v3.15)") – If the stream is not writable.

Attributes

| [`newline`](https://dev.nominal.io/instro/ref/library/instro.lib.publishers.files.FileWriter.md#instro.lib.publishers.files.FileWriter.newline "instro.lib.publishers.files.FileWriter.newline") |  |
| --- | --- |
| [`mode`](https://dev.nominal.io/instro/ref/library/instro.lib.publishers.files.FileWriter.md#instro.lib.publishers.files.FileWriter.mode "instro.lib.publishers.files.FileWriter.mode") |  |

Methods

| [`write`](https://dev.nominal.io/instro/ref/library/instro.lib.publishers.files.FileWriter.md#instro.lib.publishers.files.FileWriter.write "instro.lib.publishers.files.FileWriter.write") | Write one Measurement or Command to the stream. |
| --- | --- |

### mode: str

### newline: str | None = None

### abstractmethod write( data: Measurement | Command, ) → None[source]

Write one Measurement or Command to the stream.
