【问题标题】:Python FTP uploading barPython FTP上传栏
【发布时间】:2011-08-06 02:26:15
【问题描述】:

我在 python 中使用 FTPLib 上传一个文件,并有一个带有 progressbar 2.2. 的 cli 加载栏 我需要制作一个加载栏来告诉上传进度。

有人知道这个话题的任何信息吗?

谢谢,乔达梅里奥


正如 Senthil Kumaran 指出的,ftplib.storbinary 函数中有一个回调参数,但我不知道如何使用它。

我试过这个。我希望它在每次上传一个字节时打印消息。

import ftplib

def callback():
    print("This is the callback function")

s = ftplib.FTP('myserver.com','login','password') # Connect

f = open('test.txt','rb')                # file to send
s.storbinary('STOR test.txt', f, 1024, callback())         # Send the file

f.close()                                # Close file and FTP
s.quit()

【问题讨论】:

  • 不要调用你的回调 - 你实际上是在这里传递 None 作为回调。
  • 我以前从未使用过回调函数,所以我有点困惑。我应该改变哪一部分?

标签: python file-upload ftp


【解决方案1】:

显示您尝试过的代码示例等特定问题将有助于回答。 当 FTP 库提供 callback 函数的某些功能并且您使用进度指示器函数(在本例中为进度条)并将其附加到该回调时,可以使用指示器显示进度。查看ftplib 文档,有一些规定可以将回调附加到某些方法,也许这对您应该有用。

【讨论】:

  • 该死...一定很累。我在那里寻找回调函数,但不知何故错过了它。早上会给出更新的代码。
【解决方案2】:

对代码的小改动:

import ftplib

def callback(p):
    print("This is the callback function")

s = ftplib.FTP('myserver.com','login','password') # Connect

f = open('test.txt','rb')                # file to send
s.storbinary('STOR test.txt', f, 1024, callback)         # Send the file

f.close()                                # Close file and FTP
s.quit()

回调需要稍后调用。如果您在将其作为参数传递时调用它,则改为传递它的返回值。由于你的callback 函数没有返回值,它会传入None

【讨论】:

  • 附带说明,ftplib.storbinary 函数将每个数据块传递回回调函数,因此它必须是 def callback(param1):
猜你喜欢
  • 2013-06-30
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2012-09-18
  • 2013-04-30
相关资源
最近更新 更多