Python FTP:“ ftplib.error_temp:421超时-下次尝试键入更快一点”错误

我有一个程序,每当用户发出命令时,该程序便与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秒间隔后发出命令,则会弹出此错误消息:{{1 }}

据我了解,ftp服务器有时间限制,不活动后会踢您。我正在寻找一种使FTP服务器保持繁忙并停止让它启动程序的方法。基本上,任何阻止该错误消息再次出现的解决方案。

谢谢!

geaixin520 回答:Python FTP:“ ftplib.error_temp:421超时-下次尝试键入更快一点”错误

您将必须:

  • 仅在提示用户后登录。
  • 或通过执行一些虚拟命令提示用户时保持连接有效。通常,这是通过发送NOOP命令来完成的:

    ftp.voidcmd("NOOP")
    

    尽管某些服务器会忽略NOOP命令。然后,您将必须发送一些确实可以执行某些操作的命令,例如PWD

    在阻塞input调用的情况下,您将不得不在另一个线程上发送命令,请参见
    Do something while user input not received

本文链接:https://www.f2er.com/3088000.html

大家都在问