使用文件系统

工作区文件系统

工作区环境左侧窗格中显示的文件代表工作区目录的内容,该目录是笔记本的工作目录。

Workspaces file system

要查看完整路径,请运行 pwd 或以下命令:

import os
print(os.getcwd())
Copy

这会按以下格式打印路径:

/workspace/<workspace_hash representing your workspace>
Copy

Using ls to list files displays notebook files and any folders or project assets stored in the Workspace directory.

Referencing files

您可以通过完整路径和相对路径引用当前工作区目录中的文件。例如,您想读取工作区中的笔记本和示例数据集(CSV 格式):

ml-intent-prediction/
├── data/
│   └── sample_data.csv
├── notebooks/
│   └── analysis.ipynb
└── utilities.py
Copy

使用相对路径读取数据:

import pandas as pd

df = pd.read_csv("../data/sample_data.csv")
df.head()
Copy

使用完整路径读取数据:

import pandas as pd

df = pd.read_csv("/workspace/<workspace_hash>/ml-intent-prediction/data/sample_data.csv")
df.head()
Copy

限制

不支持通过代码或终端向工作区目录写入文件。虽然文件写入在会话期间可能会起作用,但不能保证它们会成功,并且在未来的版本中可能会失败。

工作区目录中的文件持久性具有以下限制:

  • 文件是只读的: /workspace/<workspace_hash> 下的文件是只读的,在执行笔记本时无法在代码中更新。

  • 不支持从代码或终端写入文件: 不要以编程方式将文件写入工作区目录。使用 Snowflake 暂存区来保存文件(请参阅 持久化文件)。

  • Only files uploaded or created in Snowsight persist: Only files that are uploaded or created through Snowsight persist across sessions.

  • 仅会话可见性: 当笔记本服务暂停时,会话期间通过代码或终端创建的任何文件都将被移除。这些文件不会出现在左侧窗格中。

容器的 /tmp 目录

/tmp 目录也是可读取/写入的,适用于草稿工作或不需要持久化的临时数据。

将文件写入 /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}")
Copy

要列出 /tmp 目录中的文件,请运行以下命令:

%%bash
cd /tmp
ls
Copy

持久化文件

要存储文件以备后用,请使用 Snowpark 文件操作 APIs 将其写入具有写访问权限的 Snowflake 暂存区。

要了解有关所需暂存区权限的更多信息,请参阅 写访问权限。有关 Snowpark 文件操作,请参阅 Snowpark 文件操作 APIs

语言: 中文