PyGObject:Gio.File.copy_async() 在 Ubuntu 12.04 中不存在

PyGObject:Gio.File.copy_async() 在 Ubuntu 12.04 中不存在

根据GIO 参考手册 Gio.File有一个方法。在 Ubuntu 12.04 中,当我尝试调用此方法时,copy_async我得到了一个。AttributeError

我应该用什么来进行异步复制?

我可以使用Gio.OutputStream.splice_async(),但是它没有给我进度回调

答案1

你引用的参考手册不是针对 Python 的。我知道,有了 gobject 内省,就不再有 Python 手册可用了(只有教程),但本手册未记录 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)

有关此版本的更多信息这里这里

相关内容