PyGObject: Gio.File.copy_async () не существует в Ubuntu 12.04

Согласно Справочное руководство GIO Gio.File имеет метод copy_async. В Ubuntu 12.04 я получаю AttributeError, когда пытаюсь вызвать этот метод.

Что я должен использовать вместо этого для асинхронного копирования?

Я мог бы использовать Gio.OutputStream.splice_async(), но это не дает мне обратный вызов прогресса

4
задан 5 August 2012 в 02:54

1 ответ

Справочное руководство, которое вы цитируете, не для python. Мне известно, что с помощью самоанализа gobject больше не доступно руководство по питону (только учебник ), но это руководство не документирует отображенную функциональность python. Многие функции из C не были доступны из других языков.

Один из способов, которым вы можете пойти, если вам не требуется Gio, - это просто использовать встроенные функции Python?

Модуль concurrent.futures делает вещи в асинхронный способ (перенесено здесь ). При этом вы сможете сделать что-то вроде этого:

import concurrent.futures
import shutil

with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
    executor.submit(shutil.copy, "test1.txt", "test1_new.txt").add_done_callback(
      process_result )
    executor.submit(shutil.copy, "test2.txt", "test2_new.txt").add_done_callback(
      process_result)

Подробнее об этой версии здесь и здесь .

0
ответ дан 5 August 2012 в 02:54

Другие вопросы по тегам:

Похожие вопросы: