#python #pandas #google-api #google-colaboratory
#python #pandas #google-api #google-colaboratory
Вопрос:
Я использую Python в Colabs для доступа к определенным файлам с их идентификаторами, их анализа и записи информации о них. Мне нужно сохранить записанную информацию в папке team на диске. Я неохотно монтирую, потому что папка team находится глубоко в архитектуре папок корпоративного диска. Я не знаю, как получить к нему доступ с основного диска, у меня он установлен на моем диске для легкого доступа. Я также просто чувствую себя странно, монтируя весь свой диск со всей информацией о компании на нем. Я действительно хотел бы, чтобы вы могли смонтировать одну папку (я знаю, что вы можете изменить путь после монтирования, но это тоже кажется странным).
Я нашел множество способов загрузить файл на основе идентификатора файла, но я не могу найти ни одного для загрузки в этот идентификатор файла или сохранения в идентификатор файла. Я знаю, что в Pandas также есть способ считывать информацию из идентификатора файла и использовать ее в качестве фрейма данных, который является опцией, но можете ли вы сохранить новую информацию в идентификаторе файла с помощью Pandas? Также, похоже, есть способ легко загрузить с помощью Google API с идентификатором файла, но, опять же, нелегкий способ загрузить в идентификатор файла или идентификатор папки и перезаписать файл.
Со временем эти файлы будут действительно большими; десятки тысяч строк, поэтому он должен быть в состоянии справиться с этим, либо загрузив только новую информацию, либо имея возможность обрабатывать длительные загрузки.
Редактировать: я также только что попробовал использовать gspread, но я не могу обмениваться файлами с электронными письмами за пределами домена нашей компании, поэтому я не могу использовать gspread. ):
Ответ №1:
Вы можете использовать pydrive
для чтения и записи на основе FILE_ID
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
# Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
fid = 'Your File ID'
# read it
f = drive.CreateFile({'id': fid}) # just open an existing file
f.FetchMetadata(fetch_all=True)
text = f.GetContentString() # or f.GetContentFile('im.png') to save a local file
# or write it
f.SetContentString('Sample upload file content') # or SetContentFile('im.png')
f.Upload()