根据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)