谷歌驱动器递归列出文件的问题
我正在尝试递归地列出特定谷歌云盘文件夹中的所有文件和文件夹。
def list_file(parent):
result = service.files().list(q= "'%s' in parents and trashed=false" % parent).execute(http=decorator.http())
tasks = result.get('items', [])
for f in tasks:
if f['mimeType'] == 'application/vnd.google-apps.folder':
list_file(f['id'])
return tasks
tasks = list_file('the specific folder ID')
但问题是,它只会返回特定文件夹ID下直接的文件和文件夹列表,而不会包括子文件夹及其内部的文件。
有没有人知道我该如何修正我的代码,让它正常工作?谢谢!
或者有没有更好的方法,可以通过谷歌云盘的API列出特定文件夹下所有文件和子文件夹中的文件?如果有人能分享代码,那就太好了。
提前感谢大家。
2 个回答
0
我不是Python专家,但我觉得你应该在某个时候把你内部调用list_files
的结果加到tasks
这个结果变量里。
2
如果你把这一行:
list_file(f['id'])
改成:
tasks.extend(list_file(f['id']))