谷歌驱动器递归列出文件的问题

1 投票
2 回答
1184 浏览
提问于 2025-04-20 09:14

我正在尝试递归地列出特定谷歌云盘文件夹中的所有文件和文件夹。

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']))

撰写回答