googlesheets:将一个任务分成多个子任务来并行upd

2024-06-16 10:10:18 发布

您现在位置:Python中文网/ 问答频道 /正文

在googlesheets中,我有一个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


Tags: keyselfsourcetarget列表sh密钥cell
1条回答
网友
1楼 · 发布于 2024-06-16 10:10:18

我想您可能想看看多处理,正如我们讨论的here,但是我要提醒您,同时调用Google可能会很棘手。即使使用较新的googlesheetsapiv4(gspread可能还没有用到),也有at least one documented concurrency issue when appending data。在

尽管如此,Google显然支持web用户界面中的并发编辑(包括由多个用户进行),因此,如果您无法找到解决问题的方法(可能需要借助更新的googleapi的一个更新的Python包装器gsheets)的帮助,我会很惊讶的。在

相关问题 更多 >