Hazy Ideas

日々の勉強の気づきを書き出しています

Pythonでスペースを含んだフォルダパスを読み込む(Google Colaboratory)

Google Colabでフォルダのパスが通らない事態と解決方法。大した話ではないけども、検索しても引っかからなかったので書きます。

 

問題のあったフォルダ名

フォルダdrive/MyDrive下に作成された標準名称が「Colab Notebooks」で、スペースが入っています。

 

事象

まずライブラリをインポートして、Google driveをマウントする。

import pandas as pd
from google.colab import drive
drive.mount('/content/drive')

その後、以下のようなコードを実行。

train = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/xxxxxx/train.csv')

すると、

/content/drive/MyDrive/Colab

Notebooks/xxxxxx/train.csv

上記のように改行されて認識され、エラーが発生した。

スペースの部分をPython正規表現の「\」「\n」「\s」などに変えて試してみたが、うまくいかなかった。

 

対応策1

train = pd.read_csv('/content/drive/MyDrive/Colab_Notebooks/xxxxxx/train.csv')

フォルダ名をスペースをハイフンに「Colab_Notebooks」に変えたところ、当然うまくいきました。

 

対応策2

train = pd.read_csv("/content/drive/MyDrive/Colab Notebooks/xxxxxx/train.csv")

シングルクォーテーションをダブルクオーテーションに変更すると、うまく認識してくれました。

 

PythonでもRでも、記号の使い方でパスが正しく通るか変わることがあることは経験がありました。

今回、不思議だったのは、対応策2を一度試して以降、最初のシングルクォーテーションで挟む形式に戻してもパスが通ることです(なのでエラーが出たときのメッセージや画面を貼り付けられず)。