> ## Documentation Index
> Fetch the complete documentation index at: https://crewai-cursor-filewritetool-docs-aa85.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Escrita de Arquivo

> Escreve conteúdo de texto em um arquivo.

# `FileWriterTool`

## Descrição

O `FileWriterTool` escreve conteúdo de texto em um arquivo. Diretórios
ausentes são criados automaticamente. A codificação de texto padrão é UTF-8.

As escritas ficam confinadas a um diretório sandbox. Por padrão, esse
diretório é o diretório de trabalho atual. Passe `base_dir` para alterá-lo.

## Instalação

```shell theme={null}
pip install 'crewai[tools]'
```

## Exemplo

```python Code theme={null}
from crewai_tools import FileWriterTool

file_writer_tool = FileWriterTool()

result = file_writer_tool.run(
    filename='example.txt',
    content='This is a test content.',
    directory='test_directory',
)
print(result)
```

## Argumentos

O agente fornece estes em tempo de execução:

* `filename`: Nome do arquivo a escrever, relativo a `directory`. Pode incluir
  subdiretórios. Esses subdiretórios são criados se não existirem.
* `content`: Conteúdo de texto a escrever.
* `directory` (opcional): Diretório no qual escrever. Um caminho relativo é
  resolvido dentro do diretório permitido da ferramenta (`base_dir` quando
  definido; caso contrário, o diretório de trabalho atual) e tem como padrão a
  raiz desse diretório (`./`). É criado se não existir.
* `overwrite` (opcional): Se um arquivo existente deve ser substituído. Aceita
  um booleano ou as strings `y`/`yes`/`t`/`true`/`on`/`1` e
  `n`/`no`/`f`/`false`/`off`/`0`. O padrão é `false`. Quando é `false` e o
  arquivo já existe, a ferramenta retorna um erro e não modifica o arquivo.

Você define estes ao construir a ferramenta:

* `base_dir` (opcional): Diretório dentro do qual as escritas devem
  permanecer. O padrão é o diretório de trabalho atual. Um caminho relativo é
  resolvido quando a ferramenta é construída, então uma mudança posterior do
  diretório de trabalho não move o sandbox.
* `encoding` (opcional): Codificação de texto usada para escrever o arquivo.
  O padrão é `utf-8`.

## Caminhos permitidos

Os valores de `directory` e `filename` em tempo de execução costumam ser
escolhidos por um LLM. A ferramenta rejeita caminhos que escapam do sandbox:

* O `directory` resolvido deve estar dentro de `base_dir` (o diretório de
  trabalho atual por padrão).
* O caminho do arquivo resolvido deve estar dentro desse `directory`.
* Segmentos `..`, caminhos absolutos e symlinks são resolvidos antes das duas
  verificações.

Para permitir escritas em outra árvore, defina `base_dir`:

```python Code theme={null}
file_writer_tool = FileWriterTool(base_dir='/var/output')
```

<Note>
  Anteriormente, um `directory` absoluto podia escrever em qualquer lugar em que
  o processo tivesse permissão. Se você dependia disso, defina `base_dir` para a
  árvore que deseja permitir. Definir `CREWAI_TOOLS_ALLOW_UNSAFE_PATHS=true`
  restaura o comportamento antigo, mas desativa verificações de caminho e URL em
  todo o processo para todas as ferramentas do crewai-tools. Prefira `base_dir`.
</Note>
