1. 구글드라이브 mount
Google Drive 를 mount 하기.
colab의 왼쪽 메뉴에서 파일
(폴더모양 아이콘)을 클릭하고 (구글)드라이브 마운트 (돋보기를 기준으로 오른쪽에 있는 어두운 색의 폴더 모양 아이콘: 구글드라이브 마크있는 폴더 아이콘)를 클릭하여 본인의 구글 드라이브를 마운트!
참고로 위와 같은 클릭과정 없이 코드로만 마운트하려면 다음을 codecell에 입력하고 수행(shift
+enter
).
(사실 위의 아이콘 클릭은 해당 code cell을 만드는 역할임.)
from google.colab import drive
drive.mount('/content/drive')
참고로 구글 드라이브의 unmount는
다음 코드 수행을 통해 이루어진다.
drive.flush_and_unmount()
print('All changes made in this colab session should now be visible in Drive.')
참고로 PyDrive를 사용하면 보다 자유로운 구글드라이브 접근이 가능함.
2. 구글 드라이브의 파일을 현재 working directory로 카피.
우선 본인의 구글드라이브 에
/MyDrive/_[10]Lecture/MachineLearning/datasets/lifesat/lifesat.csv
위와 같은 경로의 csv파일이 있다고 가정하자.
- 각자 본인의 구글 드라이브 경로에 맞게 아래의 코드셀의 내용을 바꿀것.
!cp "/content/drive/MyDrive/_[10]Lecture/MachineLearning/datasets/lifesat/lifesat.csv" ./lifesat.csv
- colab의 code shell에서 셀명령어등은
!
를 앞에 붙이고 입력하여 수행함. - 위의 명령어 구글드라이브의 해당 경로의
lifesat.csv
를 현재 디렉토리로 카피한다.
만약 구글 드라이브가 제대로 mount되지 않거나 해당 경로가 틀린 경우엔 다음과 같은 에러가 뜬다.
cp: cannot stat './drive/My Drive/[10]Lecture/MachineLearning/datasets/lifesat/lifesat.csv': No such file or director
경로가 길다면, 왼쪽패널에서 해당 파일의 위치를 열고, 파일에 마우스를 대고 우클릭 을 하면 해당파일경로를 복사할 수 있음.
bash
가 기본적으로 사용되므로,bash
의 셀명령어를 사용해도 된다.
3. colab의 파일을 local 장비로 가져오기.
#The code below doesn't work on the ipad.
from google.colab import files
#files.download(os.path.join('datasets','lifesat','lifesat.csv'))
files.download('lifesat.csv')
- 브라우저의 다운로드 디렉토리에 저장됨.
4. 파이썬 코드에서 구글드라이브 접근.
구글 드라이브가 마운트되고 나면,
colab의 python code에서 일반적인 파일접근 방식을 통해서
구글 드라이브의 모든 파일에 접근가능함.
읽기
import os
fstr = os.path.join('drive','MyDrive','_[10]Lecture',
'MachineLearning','datasets',
'lifesat','lifesat.csv')
with open(fstr) as f:
content = f.read()
print(content
쓰기
fstr = os.path.join('drive','MyDrive','\_\[10\]Lecture',
'MachineLearning','datasets',
'foo.txt')
with open(fstr, 'w') as f:
f.write('Hello Google Drive!')
!cat "./drive/MyDrive/\_\[10\]Lecture/MachineLearning/datasets/foo.txt"
- 맨 아래의 경우 셀명령어임.
softlink만들기
import os, sys
from google.colab import drive
fstr = os.path.join('drive','MyDrive','\_\[10\]Lecture', 'MachineLearning','dataset')
nb\_path = '/content/ml'
if os.path.islink(nb\_path):
os.remove(nb\_path)
os.symlink(fstr,nb\_path)
sys.path.insert(0,nb\_path)
참고
https://dsaint31.me/mkdocs_site/CE/colab/hw_spec/
'Programming' 카테고리의 다른 글
[ML] Gradient Descent Method : 경사하강법 (1) | 2023.10.19 |
---|---|
[ML] Ward’s linkage method (0) | 2023.08.06 |
[matplotlib] bar chart 그리기 : error bar 포함 (0) | 2023.08.01 |
[Python] for statement (0) | 2023.07.30 |
[PyQt6] QSizePolicy 설정. (0) | 2023.07.03 |