PyDrive: невозможно записать файл в определенную папку GDrive
Я пытаюсь скопировать файлы с локального компьютера в определенную папку в GDrive с помощью PyDrive. Если целевая папка еще не существует, я хочу ее создать. Вот соответствующий раздел моего кода:
gfile = drive.CreateFile({'title':'dummy.csv',
'mimeType':'text/csv',
'parent': tgt_folder_id})
gfile.SetContentFile('dummy.csv')
gfile.Upload() # Upload it
Я уверенно создаю/находим целевую папку правильно, а tgt_folder_id верен, но PyDrive всегда записывает файл в корневую папку моего Google Диска, а не целевую папку, указанную мной через параметр "parent".
Что я здесь делаю неправильно?
Ответы
Ответ 1
ОК, похоже, что вы это делаете:
gfile = drive.CreateFile({'title':'dummy.csv', 'mimeType':'text/csv',
"parents": [{"kind": "drive#fileLink","id": tgt_folder_id}]})
Карта "родители" используется в SDK Google Диска, который, как предполагается, должен завершать PyDrive. Но очень немногие примеры, которые я видел с PyDrive, используют "родительский" и, похоже, не работают.
В любом случае, надеюсь, что это поможет любому другому, кто сталкивается с той же проблемой.
Ответ 2
Ahoj @i-am-nik, для перечисления подпапок вы можете использовать слегка измененную строку:
file_list = drive.ListFile({'q': 'trashed=false', 'maxResults': 10}).GetList()
for file1 in file_list:
print('title: %s, id: %s' % (file1['title'], file1['id']))
Таким образом, он будет перечислять как папки, так и подпапки (конечно, если у вас много файлов, вам может потребоваться изменить значение maxResults или добавить сужающий запрос.