我从PyDrive文档中获得以下代码,允许访问我的Google云端硬盘中的顶级文件夹.我想从中访问所有文件夹,子文件夹和文件.我该怎么做呢(我刚刚开始使用PyDrive)?
#!/usr/bin/python # -*- coding: utf-8 -*- from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive gauth = GoogleAuth() gauth.LocalWebserverAuth() # Creates local webserver and auto handles authentication #Make GoogleDrive instance with Authenticated GoogleAuth instance drive = GoogleDrive(gauth) #Google_Drive_Tree = # Auto-iterate through all files that matches this query top_list = drive.ListFile({'q': "'root' in parents and trashed=false"}).GetList() for file in top_list: print 'title: %s, id: %s' % (file['title'], file['id']) print "---------------------------------------------" #Paginate file lists by specifying number of max results for file_list in drive.ListFile({'q': 'trashed=true', 'maxResults': 10}): print 'Received %s files from Files.list()' % len(file_list) # <= 10 for file1 in file_list: print 'title: %s, id: %s' % (file1['title'], file1['id'])
我已经检查了以下页面如何列出Google驱动器文件夹的所有文件,文件夹,子文件夹和子文件,这似乎是我正在寻找的答案,但代码不再存在了.
它需要迭代文件列表。基于此,代码将在文件夹中获取文件标题和每个文件的url链接。可通过提供文件夹的来调整代码以获取特定的文件id
夹,例如ListFolder('id')
。下面给出的示例正在查询root
#!/usr/bin/python # -*- coding: utf-8 -*- from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive gauth = GoogleAuth() gauth.LocalWebserverAuth() # Creates local webserver and auto handles authentication #Make GoogleDrive instance with Authenticated GoogleAuth instance drive = GoogleDrive(gauth) def ListFolder(parent): filelist=[] file_list = drive.ListFile({'q': "'%s' in parents and trashed=false" % parent}).GetList() for f in file_list: if f['mimeType']=='application/vnd.google-apps.folder': # if folder filelist.append({"id":f['id'],"title":f['title'],"list":ListFolder(f['id'])}) else: filelist.append({"title":f['title'],"title1":f['alternateLink']}) return filelist ListFolder('root')