2017-02-04 26 views
0

В Google Таблицах у меня есть задача python, которая проходит и копирует формулу из одного шаблона и вставляет ее во все остальные листы, указав ключ. Список ключей составляет около 1000 ключей, и он обновляется довольно медленно.Листы Google: разделение задачи на многие подзадачи на параллельное обновление

Прямо сейчас, я могу вручную нарезать список и запустить код 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

ответ

1

Я думаю, что вы, вероятно, хотите, чтобы проверить мультипроцессирование, как обсуждалось here, но я хотел бы предостеречь, что одновременные звонки на Google может быть сложно. Даже используя новый API Google Таблиц v4 (который gspread пока не может использовать), есть at least one documented concurrency issue when appending data.

Сказав, что Google явно поддерживает одновременное редактирование в веб-интерфейс (в том числе несколькими пользователями), так что я был бы удивлен, если вы не могли понять что-то (возможно, с помощью gsheets, более новую оболочку Python вокруг нового API Google).