使用 Dropbox API 和 python 列出文件夹和子文件夹中的所有文件

问题描述 投票:0回答:2

我的任务是重组我们公司的Dropbox。 我正在使用 Python 和 Dropbox API,我的目标是提取我们团队 Dropbox 的文件夹和子文件夹中所有文件的列表。

到目前为止,我的代码看起来是来自他们的基本代码,我想要一点帮助来理解如何列出每个子文件夹中的文件

import dropbox

dbx = dropbox.Dropbox('API')
dbx.users_get_current_account()

for entry in dbx.files_list_folder('/Company Team Folder').entries:
    print(entry.name)

感谢您对此的任何指导。

python-3.x dropbox-api
2个回答
2
投票

对于来这里寻找答案的人,这里是使用 Dropbox API 和 python 列出文件夹和子文件夹中所有文件的解决方案

def i_am_dropbox(token):
    my_client = Dropbox(token)
    file_list = my_client.files_list_folder('', recursive=True)
    
    # WE DID NOT CHECK HASMORE!
    folder_list = [x.name for x in file_list.entries if 'size' not in dir(x)]
    
    # List of both folders and files...
    list_of_files = [x.name for x in file_list.entries]
    
    # print folder_list
    return folder_list, list_of_files

查看更多示例代码:https://python.hotexamples.com/examples/dropbox/Dropbox/files_list_folder/python-dropbox-files_list_folder-method-examples.html


0
投票

当我制作个人项目时,我使用这种方法来分离文件夹和文件:

def list_files_in_folder(folder_path):
    """List all files and folders in a specified Dropbox folder."""
    dbx = dropbox.Dropbox(ACCESS_TOKEN)

    try:
        # Get folder contents
        response = dbx.files_list_folder(folder_path)
        
        # Print out the names of the files
        folders = []
        files = []
        for entry in response.entries:
            if isinstance(entry, dropbox.files.FolderMetadata):
                folders.append(entry)
            elif isinstance(entry, dropbox.files.FileMetadata):
                files.append(entry)
        return folders, files
    except dropbox.exceptions.ApiError as e:
        print(f"Error: {e}")
© www.soinside.com 2019 - 2024. All rights reserved.