파일 시스템 작업하기¶
작업 공간 파일 시스템¶
작업 공간 환경의 왼쪽 창에 표시된 파일은 노트북의 작업 디렉터리인 작업 공간 디렉터리의 내용을 나타냅니다.
작업 공간 디렉터리에서 :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 스테이지를 사용합니다(파일 유지 참조).
Snowsight에서 업로드되거나 생성된 파일만 유지됨: Snowsight 를 통해 업로드되거나 생성된 파일만 세션 간에 유지됩니다.
세션 전용 가시성: 노트북 서비스가 일시 중단되면 세션 중에 코드 또는 터미널에서 생성된 모든 파일이 제거됩니다. 이러한 파일은 왼쪽 창에 표시되지 않습니다.
컨테이너의 /tmp 디렉터리¶
/tmp 디렉터리는 읽기/쓰기도 가능하며 스크래치 작업이나 지속할 필요가 없는 임시 데이터에 적합합니다.
:file:`/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 스테이지에 파일을 작성합니다.
필수 스테이지 권한에 대해 자세히 알아보려면 :ref:`쓰기 액세스<label-access_control_privileges_stage>`를 참조하세요. Snowpark 파일 작업의 경우 `Snowpark 파일 작업 APIs<https://docs.snowflake.com/en/developer-guide/snowpark/reference/python/1.6.1/api/snowflake.snowpark.FileOperation#snowflake.snowpark.FileOperation>`_를 참조하세요.