首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在带有Office365-REST-Python的特定子文件夹中列出sharepoint文件

在带有Office365-REST-Python的特定子文件夹中列出sharepoint文件
EN

Stack Overflow用户
提问于 2022-01-11 17:31:07
回答 1查看 877关注 0票数 0

我需要在一组子文件夹中从sharepoint下载所有文件,但我很难获得使用下载方法的文件列表。

我正在使用python库Office365-REST-Python,特别是enum_files_and_folders.py示例。

问题是我的文档库太大了。然后,要在特定的子文件夹中仅枚举文件。

我的sharepoint结构如下所示:

https://mysite/shared文件/一般/.页/年/月

我想下载在sheets文件夹和子文件夹中的所有xlsx文件,而不遍历所有文档库结构。

有人知道过滤器的选项吗?

我当前的代码如下所示:

代码语言:javascript
运行
复制
doc_lib = contexto.web.get_folder_by_server_relative_url(relative_url)
items = doc_lib.items.select(["FileSystemObjectType"]).expand(["File", "Folder"]).get().execute_query()
arquivos_fluxo =[]
for item in items:  # type: ListItem
    if item.file_system_object_type != FileSystemObjectType.Folder:
        if "myfiles.xlsx" in item.file.serverRelativeUrl:
            print("File url: {0}".format(item.file.serverRelativeUrl))
            arquivos_fluxo.append(item.file.serverRelativeUrl)
EN

回答 1

Stack Overflow用户

发布于 2022-03-07 13:40:02

我遇到了一个类似的问题。下面是用于从子文件夹检索所有文件的代码:

代码语言:javascript
运行
复制
def get_all_files_from_document_library(spo_site: str, folder_name: str) -> list:
    try:
        user_credentials = UserCredential(global_settings.SYSTEM_USER_SPO, secret.SYSTEM_USER_PWD)
        ctx = ClientContext(f"{global_settings.SHAREPOINT_BASE_URL}/sites/{spo_site}").with_credentials(user_credentials)
        files = ctx.web.get_folder_by_server_relative_url(folder_name).files
        ctx.load(files).execute_query()
        file_list = []
        for file in files:
            file_list.append({"Name": file.name, "ServerRelativeUrl": file.serverRelativeUrl})

    except:
        logging.error("Could not retrieve files from folder '%s/%s'", spo_site, folder_name)
        return None
    return file_list

我使用在 github上发布的答案作为参考。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70671015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档