2017-07-08 126 views
0

我使用Dropbox Python API连接的Dropbox帐户在其主文件夹中包含大约10k个文件。我有兴趣获取所有文件的元数据信息,问题是当我拨打以下内容时:使用Dropbox Python API获取所有文件的元数据

client = dropbox.Dropbox('TOKEN HERE') 
metadata = client.files_list_folder('').entries 
fname = [] 
for i in metadata: 
    fname.append(i) 
print(len(fname)) 

它仅打印2000个文件。我发现可疑的是它只打印出这样一个整数的信息,这让我认为这是一个硬性限制。

我知道有files_list_folder_continue函数,如果我理解正确,继续寻找元数据,其中files_list_folder功能停止,但林不知道如何实现它。我尝试了以下方法:

metadata = client.files_list_folder('').entries 
metadata1 = client.files_list_folder_continue('').entries 
met = pd.concat([metadata, metadata1], axis=0) 

但它会产生以下错误:dropbox.stone_validators.ValidationError: '' must be at least 1 characters, got 0。显然它与我不知道如何使用files_list_folder_continue函数有关。这些如何被使用?

回答

1

我意识到有是解决此问题的方法,所以我想我张贴此,如果一个初学者在蟒蛇绊在将来使用python一样的疑问:

metadata = client.files_list_folder('') 
flist = [] 
if metadata.has_more == True: 
    m1 = metadata.entries 
    cur = metadata.cursor 
    for i in m1: 
     if isinstance(i, dropbox.files.FileMetadata): 
      flist.append([i.name, i.size]) 
    m2 = client.files_list_folder_continue(cur) 
    while m2.has_more == True: 
     for i in m2.entries: 
      if isinstance(i, dropbox.files.FileMetadata): 
       flist.append([i.name, i.size]) 
     cur = m2.cursor 
     m2 = client.files_list_folder_continue(cur) 

那得到的名称和大小保管箱文件夹主目录中的所有文件。

相关问题