Python FTP:“ftplib.error\u温度:421超时“下次尝试键入快一点”

2024-04-23 17:43:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,每当用户发出命令时,它就会与FTP服务器交互。以下是我的代码的基本结构:

from ftplib import FTP

ftp = FTP(host=host)
login_status = ftp.login(user=username, passwd=password)

while True:
    command = input()
    if command == "abc":
        ftp.storbinary(textfile, textmessage1)
    elif command == "def":
        ftp.storbinary(textfile, textmessage2)

问题是,如果我在发出命令之间等待大约20秒(即,如果我离开程序大约20秒),并在20秒间隔后尝试发出命令,则会弹出此错误消息:ftplib.error_temp: 421 Timeout - try typing a little faster next time

这是在我的理解,ftp服务器有一个时间限制,并将踢你后不活动。我正在寻找一种方法来保持FTP服务器繁忙,并停止让它启动我的程序。基本上,任何防止错误消息再次显示的解决方案。你知道吗

提前谢谢!你知道吗


Tags: 代码用户命令程序服务器host消息错误
1条回答
网友
1楼 · 发布于 2024-04-23 17:43:16

您必须:

  • 仅在提示用户后登录。你知道吗
  • 或者在提示用户执行一些伪命令的同时保持连接的活动状态。通常通过发送NOOP命令来完成:

    ftp.voidcmd("NOOP")
    

    尽管有些服务器忽略了NOOP命令。然后您必须发送一些真正执行某些操作的命令,比如PWD。你知道吗

    通过阻塞input调用,您必须在另一个线程上发送命令,请参见
    Do something while user input not received

相关问题 更多 >