1

我正在尝试通过使用 Python 从我们的 SharePoint 网站下载 Excel 文件来自动化一些工作流程。一些背景是我对 Python 还很陌生,而且大部分时间都是自学的。我在这里阅读了许多使用 sharepy、office365、requests 等的示例,但似乎没有一个有效。以下是我尝试过的(基本上是从另一个示例中复制的),错误如下:

from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File

#Inputs
url_shrpt = "https://company.sharepoint.com/sites/teamsite"
username_shrpt = "user@company.com"
password_shrpt = "password"
folder_url_shrpt = "sites/teamsite/library"

#Authentication
ctx_auth = AuthenticationContext(url_shrpt)
if ctx_auth.acquire_token_for_user(username_shrpt, password_shrpt):
    ctx = ClientContext(url_shrpt, ctx_auth)
    web = ctx.web
    ctx.load(web)
    ctx.execute_query()
    print("Authenticated into sharepoint as: ",web.properties['Title'])

else:
    print(ctx_auth.get_last_error())

#Function for extracting the file names from a folder
global print_folder_contents
def print_folder_contents(ctx, folder_url):
    try:

        folder = ctx.web.get_folder_by_server_relative_url(folder_url)
        fold_names = []
        sub_folders = folder.files 
        ctx.load(sub_folders)
        ctx.execute_query()

        for s_folder in sub_folders:

            fold_names.append(s_folder.properties["Name"])

        return fold_names

    except Exception as e:
        print('Problem printing out library contents: ', e)
######################################################


# Call the function by giving your folder URL as input  
filelist_shrpt=print_folder_contents(ctx,folder_url_shrpt) 

#Print the list of files present in the folder
print(filelist_shrpt)

这是我收到的错误:错误:HTTPSConnectionPool(host='login.microsoftonline.com', port=443): Max retries exceeded with url: /extSTS.srf (Caused by NewConnectionError(': 无法建立新连接: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应'))

在与一些知识渊博的同事合作后,我被告知这可能是权限问题;但我不确定如何验证。任何帮助和/或建议将不胜感激。

4

0 回答 0