2017-07-08 44 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) 

那得到的名稱和大小保管箱文件夾主目錄中的所有文件。

相關問題