在下面的代码中,如果调用UPLOAD_FILE_2_SP函数,我不确定如何为OFFSET参数赋值.

代码将按原样成功运行,但我正在try 向print_pload_Progress函数添加第二个参数,以将我的文件列表循环中的每个文件传递给print_pload_Progress函数,以便在for循环迭代我的文件列表时显示上传进度.不确定如何做到这一点,因为我不确定偏移量参数的赋值当前是如何工作的.

local_path = '/sso_win_mounts/win_appsprod/CRMDAGROUP/phones/reporting/customer_care/prod/weekly/kpm/test 3.xlsb'

#display progress of file upload to sharepoint
def print_upload_progress(offset):
    print(str(offset))
    # type: (int) -> None
    file_size = os.path.getsize(local_path)
    print(
        "Uploaded '{0}' bytes from '{1}'...[{2}%]".format(
            offset, file_size, round(offset / file_size * 100, 2)
        )
    )

#upload files to sharepoint
def upload_file_2_sp(report_list, base_url, target_url):
    ctx = sharepointConnection(base_url)

    target_folder = ctx.web.get_folder_by_server_relative_url(target_url)
    size_chunk = 1000000

    for file in report_list:
        uploaded_file = target_folder.files.create_upload_session(
        file, size_chunk, print_upload_progress
        ).execute_query()

        print("File {0} has been uploaded successfully".format(uploaded_file.serverRelativeUrl))

推荐答案

参数自动传递create_upload_session(),你不能改变它传递的内容.

您可以使用lambda将其他参数传递给您的函数.

    for file in report_list:
        uploaded_file = target_folder.files.create_upload_session(
            file, size_chunk, 
            lambda offset, file=file: print_upload_progress(offset, file)
        ).execute_query()

        print("File {0} has been uploaded successfully".format(uploaded_file.serverRelativeUrl))

参见Creating functions (or lambdas) in a loop (or comprehension),了解lambda的file=file参数的解释.

Python相关问答推荐

使用SciPy进行曲线匹配未能给出正确的匹配

如何将ctyles.POINTER(ctyles.c_float)转换为int?

在Google Colab中设置Llama-2出现问题-加载判断点碎片时Cell-run失败

Vectorize多个头寸的止盈/止盈回溯测试pythonpandas

在极性中创建条件累积和

pandas:排序多级列

为什么NumPy的向量化计算在将向量存储为类属性时较慢?'

Django—cte给出:QuerySet对象没有属性with_cte''''

我的字符串搜索算法的平均时间复杂度和最坏时间复杂度是多少?

如何在Python中使用Pandas将R s Tukey s HSD表转换为相关矩阵''

寻找Regex模式返回与我当前函数类似的结果

如何使用使用来自其他列的值的公式更新一个rabrame列?

python—telegraph—bot send_voice发送空文件

搜索按钮不工作,Python tkinter

交替字符串位置的正则表达式

使用Python异步地持久跟踪用户输入

Python Mercury离线安装

BeatuifulSoup从欧洲志愿者服务中获取数据和解析:一个从EU-Site收集机会的小铲子

如何将列表从a迭代到z-以抓取数据并将其转换为DataFrame?

了解如何让库认识到我具有所需的依赖项