Trabalhando com o sistema de arquivos¶
O sistema de arquivos Workspaces¶
Os arquivos mostrados no painel esquerdo do ambiente Workspaces representam o conteúdo do diretório Workspace, que é o diretório de trabalho do notebook.
Executar ls no diretório do Workspace lista todos os arquivos e pastas no diretório, incluindo notebooks e quaisquer outros ativos do projeto.
Referência a arquivos¶
Você pode referenciar arquivos no diretório atual do Workspace pelo caminho relativo. Por exemplo, você quer ler em um notebook e um conjunto de dados de amostra (em CSV) que estão em seu espaço de trabalho:
ml-intent-prediction/
├── data/
│ └── sample_data.csv
├── notebooks/
│ └── analysis.ipynb
└── utilities.py
Em uma célula Python, execute o seguinte código:
import pandas as pd
df = pd.read_csv("../data/sample_data.csv")
df.head()
Limitações¶
A gravação de arquivos no diretório do Workspace a partir de código ou do terminal não é compatível. Pode parecer que as gravações de arquivos estejam funcionando durante uma sessão, mas pode ser que elas não sejam bem-sucedidas e falhem em versões futuras.
A persistência de arquivo no diretório do Workspace tem as seguintes limitações:
Os arquivos são somente leitura: os arquivos em
/workspace/<workspace_hash>são somente leitura e não podem ser atualizados no código durante a execução do notebook.Não é possível realizar gravações em arquivos a partir do código ou do terminal: não grave arquivos no diretório do Workspace de forma programática. Use estágios Snowflake para arquivos persistentes (consulte Arquivos persistentes).
Somente arquivos carregados ou criados no Snowsight persistem: somente arquivos carregados ou criados pela Snowsight persistem entre as sessões.
Visibilidade somente da sessão: todos os arquivos criados a partir do código ou do terminal durante uma sessão são removidos quando o serviço do notebook é suspenso. Esses arquivos não aparecem no painel esquerdo.
O diretório /tmp do contêiner¶
O diretório /tmp também é de leitura/gravação e adequado para trabalho de rascunho ou dados temporários que não precisam persistir.
Exemplo de gravação de arquivo em /tmp:
file_path = "/tmp/sample.txt"
with open(file_path, "w") as f:
f.write("Hello from Python!\\nThis is a sample file saved in /tmp.")
print(f"File written to {file_path}")
Para listar arquivos no diretório /tmp, execute o seguinte:
%%bash
cd /tmp
ls
Arquivos persistentes¶
Para armazenar arquivos para uso futuro, grave-os em uma área de preparação do Snowflake com acesso de gravação usando as APIs de operação de arquivo do Snowpark.
Para saber mais sobre os privilégios de área de preparação necessários, consulte acesso de gravação. Para operações de arquivo do Snowpark, consulte Operação de arquivo do Snowpark APIs.