ファイルシステムの操作¶
ワークスペースファイルシステム¶
ワークスペース環境の左側のペインに表示されるファイルは、ノートブックの作業ディレクトリであるワークスペースディレクトリのコンテンツを表します。
ワークスペースディレクトリで:code:`ls`を実行すると、ノートブックやその他のプロジェクトアセットを含む、ディレクトリ内のすべてのファイルとフォルダーが一覧表示されます。
ファイルの参照¶
現在のワークスペースディレクトリにあるファイルを相対パスで参照できます。たとえば、ワークスペースにあるノートブックと( CSV 内の)サンプルデータセットに読み込みたいとします。
ml-intent-prediction/
├── data/
│ └── sample_data.csv
├── notebooks/
│ └── analysis.ipynb
└── utilities.py
Pythonのセルで、以下のコードを実行します。
import pandas as pd
df = pd.read_csv("../data/sample_data.csv")
df.head()
制限事項¶
コードまたはターミナルからワークスペースディレクトリへのファイル書き込みはサポートされていません。ファイル書き込みはセッション中に機能しているように見える場合がありますが、成功は保証されず、将来のリリースで失敗する可能性があります。
ワークスペースディレクトリのファイル永続性には以下の制限があります。
** ファイルは読み取り専用です: **
/workspace/<workspace_hash>は読み取り専用であり、ノートブックの実行中にコードで更新することはできません。** コードまたはターミナルからのファイル書き込みはサポートされていません: ** プログラムでファイルをワークスペースディレクトリに書き込まないでください。ファイルを永続化するには、代わりにSnowflakeステージを使用します( :ref:` ファイルの永続化 <label-nb_in_ws_file_system_persisting_files>` を参照してください)。
** Snowsightでアップロードまたは作成されたファイルのみが永続化されます: ** Snowsight を通してアップロードまたは作成されたファイルのみがセッションをまたいで永続化されます。
** セッションのみの可視性: ** セッション中にコードまたはターミナルから作成されたファイルは、ノートブックサービスが一時停止されると削除されます。これらのファイルは左側のペインには表示されません。
コンテナの /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}")
/tmp ディレクトリでファイルを一覧表示するには、次を実行します。
%%bash
cd /tmp
ls
ファイルの永続化¶
後で使用するためにファイルを保存するには、Snowparkファイル操作 APIs を使用して、書き込みアクセスのあるSnowflakeステージにファイルを書き込みます。
必要なステージ権限の詳細については、 書き込みアクセス をご参照ください。Snowparkのファイル操作については、 `Snowparkのファイル操作 APIs<https://docs.snowflake.com/en/developer-guide/snowpark/reference/python/1.6.1/api/snowflake.snowpark.FileOperation#snowflake.snowpark.FileOperation>`_ をご参照ください。