У меня около 100 тысяч файлов в разных папках на моем гугл диске. Я хочу загрузить из него определенные файлы. Путь к файлам на диске Google находится внутри CSV.
Но как я могу получить идентификаторы файла? Я попробовал следующее.
import pandas as pd
from apiclient import errors
#from pygdrive3 import service
def retrieve_all_files(service):
"""Retrieve a list of File resources.
Args:
service: Drive API service instance.
Returns:
List of File resources.
"""
result = []
page_token = None
while True:
try:
param = {}
if page_token:
param['pageToken'] = page_token
files = service.files().list(**param).execute()
#result.extend(files['items'])
idval = files.get('id')
if not idval:
break
except errors.HttpError.error:
print ('An error occurred: %s' % error)
break
return idval
df = pd.read_csv("/home/ram/Downloads/Data_Science/Kaggle Competition/BBox_List_2017_path_colab.csv",header=None)
print(df.head())
for i in df[0]:
request = drive_service.files()
result = retrieve_all_files(request)
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print ("Download %d%%." % int(status.progress() * 100))
Но ошибка говорит, drive_service is not defined
. Ниже мой csv
0 1 ... 4 5
0 /content/drive/My Drive/nihxray/images_001/ima... 225.084746 ... 79.186441 Atelectasis
1 /content/drive/My Drive/nihxray/images_001/ima... 686.101695 ... 313.491525 Atelectasis
2 /content/drive/My Drive/nihxray/images_001/ima... 221.830508 ... 216.949153 Atelectasis
3 /content/drive/My Drive/nihxray/images_001/ima... 726.237288 ... 55.322034 Atelectasis
4 /content/drive/My Drive/nihxray/images_001/ima... 660.067797 ... 78.101695 Atelectasis
Я загружаю только те файлы, которые указаны выше в csv. Как я могу сделать это в python. Любая помощь приветствуется
drive_service
, вы должны сначала создать его, как описано здесь. Ваша функция ожидаетservice
в качестве параметра,drive_service
нигде в вашем коде не определено. - person ziganotschka   schedule 29.04.2020