挂钩GUI接口与异步(多个)FTP操作(Hooking up GUI interface with

2019-10-19 03:56发布

想要实现文件上传看起来像之间的交叉进度对话框窗口, IE下载对话框和Firefox下载对话框在Windows上的Python GUI库。

  1. 什么异步(S)FTP库在那里为蟒蛇? 理想情况下,我应该能够做文件上传简历,跟踪每个并行文件上传进度。
  2. 如果我运行在每个单独的进程中每个文件的上传,我将如何得到上传状态,并在进度条对话框显示呢?

Answer 1:

“FTPLIB”是建立在对Python标准的FTP库。 在Python 2.6,它必须加到用于上载的方法的回调参数。

这回调你提供的库中的函数; 它是为每一个完成的块调用一次。

你的函数可以将消息发送到GUI(可能在不同的线程/进程,使用标准的跨线程或进程间通信)来告诉它更新其进度条。

参考



Answer 2:

如果您的数据传输从GUI一个单独的线程中运行,你可以使用wx.CallAfter()时,你需要更新你的数据传输线进度条。

首先,使用CallAfter()是强制性的,因为wxPython的功能,不能从子线程调用。

第二,这将解耦从GUI在主线程数据传送的执行。

需要注意的是CallAfter()仅适用于螺纹,而不是单独的进程。 在这种情况下,使用多包应该有所帮助。



Answer 3:

如果你想如何使用线程和事件来更新使用wxPython的长时间运行的任务,你的GUI一个完整的例子来看看这个页面 。 本教程是非常有用的,帮助我比你执行一个类似的计划。



Answer 4:

如果你不能使用Python 2.6的FTPLIB,有提供商业解决方案的公司。

奇尔卡特的CKFTP2花费数百美元,但承诺与Python 2.5工作,并提供了一个函数调用get_AsyncBytesSent()返回你所需要的信息。 (我没有看到一个回调,但它可以提供这一点。)

我没有使用过这种产品。

同时考虑到,如果FTP被证明是太辛苦/昂贵的,你可以随时切换到HTTP上传代替。 奇尔卡特有一个免费的HTTP / HTTPS的上传库。



文章来源: Hooking up GUI interface with asynchronous (s)ftp operation