Google张:将一个任务拆分成多个子任务并行更新

Google sheets: splitting a task into many sub tasks to parallel update

在 Google 工作表中,我有一个 python 任务,它通过指定一个键从一个模板复制一个公式并将其粘贴到所有其他工作表中。密钥列表大约有 1000 个密钥,并且更新非常缓慢。

现在,我可以一次手动切碎列表和 运行 代码 10 次,这样我就有 10 个并行实例同时更新。但是有没有办法避免手动操作呢?这是代码

def copy_formula(self,source_key,target_key,sheetname,ranges):
    sh = self.gsheets.gc.open_by_key(source_key)
    wks= sh.worksheet(sheetname)
    cell_list = wks.range(ranges)

    sh1 = self.gsheets.gc.open_by_key(target_key)
    wks1= sh1.worksheet(sheetname)
    cell_list1 = wks1.range(ranges)

    for i in range(0,len(cell_list1)):  
        cell_list1[i].value=cell_list[i].input_value

    wks1.update_cells(cell_list1)

gsheets 来自 gspread

我想您可能想查看多处理,正如所讨论的 here, but I would caution that simultaneous calls to Google could be tricky. Even using the newer Google Sheets API v4 (which gspread may not avail itself of yet), there is at least one documented concurrency issue when appending data

话虽如此,Google 显然支持 Web 中的并发编辑 UI(包括多个用户),所以如果您 不支持,我会感到惊讶 想出办法(可能在 gsheets 的帮助下,一个围绕较新 Google API 的较新 Python 包装器)。