Навигация по папкам Google Диска в блокнотах Colab: подробное руководство

Если вы работаете с блокнотами Google Colab и вам нужен доступ к папкам на Google Диске, вы попали по адресу! В этой статье мы рассмотрим несколько методов навигации и поиска папок на Google Диске с помощью блокнотов Colab. Итак, давайте углубимся и найдем самый простой способ получить путь к папке!

Метод 1: использование проводника

Colab предоставляет встроенный файловый менеджер, который позволяет просматривать и выбирать папки визуально. Чтобы получить к нему доступ, вы можете использовать следующий фрагмент кода:

from google.colab import drive
drive.mount('/content/drive')
import os
from google.colab import files
uploaded = files.upload()
# After uploading, click on the folder icon on the left sidebar
# Navigate to the desired folder and right-click on it
# Select "Copy path" and paste it in your code

Этот метод позволяет визуально просматривать папки Google Диска и копировать пути непосредственно из проводника.

Метод 2. Использование API Google Диска

Если вы предпочитаете программный подход, вы можете использовать Google Drive API для получения пути к папке. Вот пример:

from google.colab import drive
drive.mount('/content/drive')
from googleapiclient.discovery import build
drive_service = build('drive', 'v3')
def get_folder_path(folder_name):
    results = drive_service.files().list(q="mimeType='application/vnd.google-apps.folder' and trashed=false",
                                          spaces='drive',
                                          fields='nextPageToken, files(id, name, parents)',
                                          pageSize=1000).execute()
    folders = results.get('files', [])
    for folder in folders:
        if folder['name'] == folder_name:
            path = folder['name']
            parent = folder['parents'][0]
            while parent != 'root':
                folder = drive_service.files().get(fileId=parent, fields='id, name, parents').execute()
                path = folder['name'] + '/' + path
                parent = folder['parents'][0]
            return path
folder_name = 'My Folder'
folder_path = get_folder_path(folder_name)
print(folder_path)

Этот метод использует API Google Диска для получения пути к папке путем рекурсивного обхода ее родительских каталогов.

Метод 3. Использование библиотеки PyDrive

Другой популярный метод — использование библиотеки PyDrive, которая предоставляет интерфейс Python для взаимодействия с Google Диском. Вот пример:

!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
def get_folder_path(folder_name):
    file_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList()
    for file in file_list:
        if file['title'] == folder_name:
            path = file['title']
            parent_id = file['parents'][0]['id']
            while parent_id != 'root':
                folder = drive.CreateFile({'id': parent_id})
                path = folder['title'] + '/' + path
                parent_id = folder['parents'][0]['id']
            return path
folder_name = 'My Folder'
folder_path = get_folder_path(folder_name)
print(folder_path)

Этот метод использует библиотеку PyDrive для доступа к Google Диску и получения пути к папке путем обхода ее родительских каталогов.

В этой статье мы рассмотрели три различных метода получения пути к папке на Google Диске с помощью блокнотов Colab. Независимо от того, предпочитаете ли вы визуальный подход с помощью проводника или программный подход с использованием API Google Диска или библиотеки PyDrive, теперь в вашем распоряжении есть несколько вариантов. Не стесняйтесь выбрать тот, который лучше всего соответствует вашим потребностям, и начните беспрепятственно перемещаться по папкам Google Диска!