我正在尝试使用Dropbox API v2获取所有文件夹和所有文件的列表,并查看与每个文件夹关联的元数据。
我已经能够列出我的Dropbox根目录中的所有文件和文件夹,并返回元数据,但我无法弄清楚如何确定输出元数据是用于文件FileMetadata
还是文件夹FolderMetadata
。
当我从查询中打印返回的值时,它将它们显示为文件或文件夹
import dropbox
def print_metadata(dbfile):
md = dbx.files_get_metadata(dbfile)
print (md)
dbx = dropbox.Dropbox('MYAPIKEY')
myfiles = ['/someotherfile.jpg', '/Camera Uploads']
for myfile in myfiles:
print_metadata(myfile)
文件:
FileMetadata(name='someotherfile.jpg', id='id:1234567890', client_modified=datetime.datetime(2013, 1, 15, 20, 51, 3), server_modified=datetime.datetime(2017, 8, 24, 21, 32, 52), rev='1234567890', size=162012, path_lower='/someotherfile.jpg', path_display='/someotherfile.jpg', parent_shared_folder_id=None, media_info=None, sharing_info=None, property_groups=None, has_explicit_shared_members=None, content_hash='1234567890')
文件夹:
FolderMetadata(name='Camera Uploads', id='id:0987654321', path_lower='/camera uploads', path_display='/Camera Uploads', parent_shared_folder_id=None, shared_folder_id=None, sharing_info=None, property_groups=None)
但由于我无法确定哪个是python中的哪个,我无法打印特定的元数据值,例如文件大小
print(md.size)
AttributeError: 'FolderMetadata' object has no attribute 'size'
我需要做什么来检查返回的对象是文件还是文件夹,还是指定只返回文件夹或只返回列表中的文件?这样我就可以遍历整个Dropbox中的所有文件夹和文件。
答案 0 :(得分:1)
您可以使用isinstance
检查对象的类型,可以是FileMetadata
,FolderMetadata
或DeletedMetadata
。这里有一个例子:
https://github.com/dropbox/dropbox-sdk-python/blob/master/example/updown.py#L91
答案 1 :(得分:1)
如果您不想阅读已接受的答案代码,可以使用此功能/行:
while (1)
{
EXEC SQL FETCH FORWARD 3 test_cursor INTO :data;
[0][0] = first column [0][1] = second column
[1][0] = first column [1][1] = second column
[2][0] = first column [2][1] = second column
////// load matrix:
[0] = David [0][1] = a (the second position of the string)
[1] = Cristiano [1][1] = r (the second position of the string)
[2] = Lionel [2][1] = i (the second position of the string)
...
procesing data and clear the cursor then load the rest of the data are in the cursor
...
}