Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # полезные ссылки
- # Google Colab: import data from google drive as pandas dataframe: https://www.javacodemonk.com/google-colab-import-data-from-google-drive-as-pandas-dataframe-079a3609
- # Работаем с API Google Drive с помощью Python: http://datalytics.ru/all/rabotaem-s-api-google-drive-s-pomoschyu-python/
- # Introduction to Google Drive API: https://developers.google.com/drive/api/v3/about-sdk
- # google-auth user guide: https://google-auth.readthedocs.io/en/master/user-guide.html
- # PyDrive’s documentation: https://pythonhosted.org/PyDrive/
- # Introduction to Google Drive API: https://developers.google.com/drive/api/v3/about-sdk
- # импортируем пандас для работы с таблицами
- import pandas as pd
- # импортируем модуль GoogleAuth из библиотеки pydrive для прохождения аутентификации в гуглклауд нашего сервисного приложения
- from pydrive.auth import GoogleAuth
- # импоритруем модуль GoogleDrive из библиотеки pydrive для работы с диском
- from pydrive.drive import GoogleDrive
- # импортируем ServiceAccountCredentials для работы с авторизацией в гуглклауд
- from oauth2client.service_account import ServiceAccountCredentials
- # создаем объект GoogleAuth
- gauth = GoogleAuth()
- # Scope — это перечень возможностей, которыми будет обладать сервис, созданный в скрипте .
- # В данном случае указанный scope позволит смотреть, редактировать, создавать и удалять файлы с диска
- scope = ["https://www.googleapis.com/auth/drive"]
- # авторизуемся в гуглклауд с помощью json файла с ключами авторизации для сервисного приложения
- # , а также заданного выше Scope
- # вместо r"C:\gd_to_pq.json" указать свой путь к файлу к ключами для сервисного приложения
- gauth.credentials = ServiceAccountCredentials.from_json_keyfile_name(r"C:\gd_to_pq.json", scope)
- # создаем объект GoogleDrive
- drive = GoogleDrive(gauth)
- # Создаем объект GoogleDriveFile с нужным нам file_id с помощью метода CreateFile у объекта GoogleDrive.
- file_id = '1B0kqT23cKwocuBVXiw_20cN6l' # здесь указать id своего файла в гугл диске
- file = drive.CreateFile({'id': file_id})
- # теперь , когда мы получили в переменной file объект GoogleDriveFile с нужным нам файлом ,можно получить содержание этого файла с помощью метода GetContentFile
- # и сразу назвать этот файл test.xlsx
- file.GetContentFile('test.xlsx')
- # создаем объект файла эксель в пандасе
- xlsx_file = pd.ExcelFile('test.xlsx')
- # получаем списко листов
- ws = xlsx_file.sheet_names
- # создаем объединенный датафрейм из всех листов
- df1 = pd.concat(pd.read_excel('test.xlsx', sheet_name=ws))
- # или создаем отдельный датафрейм для каждого листа
- df2 = pd.read_excel('test.xlsx', sheet_name=0)
- ########################### Этот блок кода можно не копироватьв Power BI (начало)##############
- # если хотим посмотреть id title и mimetype всех доступных нашему приложению файлов и папок то запускаем этот блок кода. Его можно не копировать в PowerBI
- all_files_and_folders_List = drive.ListFile({}).GetList() # получили список всех файлов и папок доступных нашему приложению в гуглдрайве
- keys = ['id', 'title', 'mimeType'] # определили списко атрибутов файлов и папок , которые мы хотим вывести на печать
- for i in all_files_and_folders_List: # в цикле берем каждый файл/папку
- for key in keys: # для каждого файла/папки извлекаем название атрибута и значение
- print(f'{key} = {i.attr["metadata"].get(key)} , ', end='')
- print()
- # если хотим получить список файлов внутри папки (этот блок кода также можно не копировать в Power BI), к которой у нашего приложения есть доступ используем метод ListFile у объекта drive
- # параметры запроса q указанные внутри ListFile можно посмотреть тут: https://developers.google.com/drive/api/v3/search-files
- folder_id = '1J5RaiambhevWheG2uYTisFMkf' # указываем google id папки которую хотим посмотреть и которая доступна для нашего приложения
- gg = f"'{folder_id}' in parents and trashed=false" # пишем параметр запроса с указанием id нашей папки
- file_list = drive.ListFile({'q': gg}).GetList() # здесь получаем список файлов/папок внутри нашей головной папки с айдишником folder_id
- # в цикле выводим title и id каждого файла/папки внутри нашей главной папки
- for f in file_list:
- print('title: %s, id: %s' % (f['title'], f['id']))
- ########################### Этот блок кода можно не копироватьв Power BI (конец)##############
Add Comment
Please, Sign In to add comment