目的
コンペなどで、ローカルとクラウドで、ファイルの読み込み処理やimportモジュールなどが、変わるので自動で切り替えられるようにする。
Kaggle, Google Colaboratory, ローカル(Windows10)
実行環境 (2020/3/15現在)
- Windows 10 Home(64bit)
- kaggle
- google Colaboratory
概要/方法
判別方法、
1.ローカル(Windows)とクラウド判定は、os.nameでOSから判定
2.Kaglle/Colabは、Kaggle固有の環境変数の'KAGGLE_DATA_PROXY_TOKEN'の有無で判定
もっと賢い判定方法があったら、ぜひ教えてください。
各プラットフォームの処理内容
- Windows:
- ローカルフォルダから読み込み
- matplotlibの日本語設定
- Kaggle:
- kaggleクラウドフォルダから読み込み
- Google Colaboratory:
- Google Driveから読み込み
- セッション時間の表示(残り時間の確認)
判別
.py
import os
# windows
if os.name == 'nt':
path = '../input/data/'
import japanize_matplotlib
sns.set(font="IPAexGothic")
elif os.name == 'posix':
# Kaggle
if 'KAGGLE_DATA_PROXY_TOKEN' in os.environ.keys():
path = '/kaggle/input/'
# Google Colab
else:
from google.colab import drive
drive.mount('/content/drive')
!ls drive/My\ Drive/'Colab Notebooks'/xxx # xxx 書き換える
path = "./drive/My Drive/Colab Notebooks/xxx/input/data/" # xxx 書き換える
# セッションの残り時間の確認
!cat /proc/uptime | awk '{print $1 /60 /60 /24 "days (" $1 / 60 / 60 "h)"}'
print(os.name)
print(path)