使用PyDrive下载特定文件夹中的所有文件

问题描述 投票:2回答:1

我的Google云端硬盘看起来像这样:

picture1.jpg

song1.mp3

A / B / FILE1.TXT

A / B / FILE2.TXT

哦/ b /ぃぃ3。 JPG

A / B / file4.m4a

A / B / ...

我想使用PyDrive下载文件夹“b”中的每个文件。在查看文档并检查StackOverflow之后,我仍然无法弄清楚如何执行此操作。如何使用PyDrive下载文件夹“b”中的所有文件(包含在文件夹“a”中)。此外,如果相关,请注意文件夹“b”包含数千个文件。

google-drive-sdk gsuite pydrive
1个回答
5
投票

我想到了。基本上,您需要使用文件ID列出或下载文件夹的内容。

假设file_list是根目录:

for file1 in file_list:
    if file1['title'] == '[name_of_target_folder]':
        folder_id = file1['id']

然后

> folder_id 
> 'WIU1xyz19g83abcdefg'

(例如)

获取'文件夹'中的每个文件:

file_list = drive.ListFile({'q': "'{}' in parents and trashed=false".format(folder_id)}).GetList()

下载'文件夹'中的每个文件:

for file1 in sorted(file_list, key = lambda x: x['title']):
    print('Downloading {} from GDrive ({}/{})'.format(file1['title'], i, len(file_list)))
    file1.GetContentFile(file1['title'])
© www.soinside.com 2019 - 2024. All rights reserved.