[colab] google drive와 colab연동하기 (기초)

2023. 9. 14. 01:56·Programming
728x90
728x90

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/

 

BME228

Colab이란 Google Colaboratory = Google Drive + Jupyter Notebook 구글 계정 전용의 가상 머신 지원 – GPU 및 TPU를 제공 Google drive 문서와 같이 링크만으로 접근 가능 :공동작업 가능 Jupyter Notebook 웹 브라우저에

dsaint31.me

 

728x90

'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
'Programming' 카테고리의 다른 글
  • [ML] Gradient Descent Method: 경사하강법
  • [ML] Ward’s linkage method
  • [matplotlib] bar chart 그리기 : error bar 포함
  • [Python] for statement
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (787)
      • Private Life (15)
      • Programming (55)
        • DIP (116)
        • ML (35)
      • Computer (120)
        • CE (54)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (368)
        • Signals and Systems (115)
        • Math (176)
        • Linear Algebra (33)
        • Physics (43)
        • 인성세미나 (1)
      • 정리필요. (61)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (7)
        • PET Study 2009 (1)
        • 방사선 장해방호 (5)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    signals_and_systems
    SS
    numpy
    Python
    Probability
    random
    인허가제도
    fourier transform
    cv2
    Programming
    linear algebra
    opencv
    math
    Vector
    ML
    function
    SIGNAL
    Term
    Optimization
    signal_and_system
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[colab] google drive와 colab연동하기 (기초)
상단으로

티스토리툴바