我需要在一组子文件夹中从sharepoint下载所有文件,但我很难获得使用下载方法的文件列表。
我正在使用python库Office365-REST-Python,特别是enum_files_and_folders.py示例。
问题是我的文档库太大了。然后,要在特定的子文件夹中仅枚举文件。
我的sharepoint结构如下所示:
https://mysite/shared文件/一般/.页/年/月
我想下载在sheets文件夹和子文件夹中的所有xlsx文件,而不遍历所有文档库结构。
有人知道过滤器的选项吗?
我当前的代码如下所示:
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)
发布于 2022-03-07 13:40:02
我遇到了一个类似的问题。下面是用于从子文件夹检索所有文件的代码:
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上发布的答案作为参考。
https://stackoverflow.com/questions/70671015
复制相似问题