Я пытаюсь обработать данные в битах, используя мультиобработку, и у меня работает следующий код:
if __name__ == '__main__':
for q in query_list:
out_name = "Contour_Other" + str(q[0]) + ".gdb"
arcpy.CreateFileGDB_management(out_folder_path,out_name)
dest_gdb = out_folder_path + "/" + out_name
generated_filegdb_list.append(dest_gdb)
query = "objectid > " + str(q[0]) + " AND objectid <= " + str(q[1])
output_path = dest_gdb + "/" + large_featureclass[14:] + str(q[0])
generated_features_list.append(output_path)
p = multiprocessing.Process(target=arcpy_select_analysis, args = (large_featureclass, output_path, query ))
p.start()
processor_list.append(p)
Что он делает, это берет query_list, который является списком списков [[0,10], [11,20], [21,30]] и т. Д., Создает группу файлов базы геоданных и использует оператор select выводить отдельные списки в отдельные создаваемые базы геоданных.
Проблема возникает, когда я пытаюсь изменить код для размещения другой итерации, поэтому я изменяю код на:
if __name__ == '__main__':
for features in feature_list:
for q in query_list:
out_name = "Contour_Other" + str(q[0]) + ".gdb"
arcpy.CreateFileGDB_management(out_folder_path,out_name)
dest_gdb = out_folder_path + "/" + out_name
generated_filegdb_list.append(dest_gdb)
query = "objectid > " + str(q[0]) + " AND objectid <= " + str(q[1])
output_path = dest_gdb + "/" + large_featureclass[14:] + str(q[0])
generated_features_list.append(output_path)
p = multiprocessing.Process(target=arcpy_select_analysis, args = (large_featureclass, output_path, query ))
p.start()
processor_list.append(p)
Где feature_list - это список, содержащий три отдельные функции (например, [Contours, Contours_10, Contours_2]) и т. Д. Я ожидал, что это будет код для повторения успешного завершения, но только для 3 различных функций.
Вместо этого я вижу, что новому коду удается добраться до части созданного_файла_пользователя (output_path), но не удается передать какие-либо данные с помощью многопроцессорной обработки. Часть Процесса