gpt4 book ai didi

python - 使用 NOOP 命令检查 FTP 连接是否有效

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:54 25 4
gpt4 key购买 nike

我遇到了一个问题,我的一个脚本似乎在大量作业期间与我的 FTP 断开连接。为了解决这个问题,我尝试制作一个如下所示的模块:

def connect_ftp(ftp):
print "ftp1"
starttime = time.time()
retry = False
try:
ftp.voidcmd("NOOP")
print "ftp2"
except:
retry = True
print "ftp3"
print "ftp4"
while (retry):
try:
print "ftp5"
ftp.connect()
ftp.login('LOGIN', 'CENSORED')
print "ftp6"
retry = False
print "ftp7"
except IOError as e:
print "ftp8"
retry = True
sys.stdout.write("\rTime disconnected - "+str(time.time()-starttime))
sys.stdout.flush()
print "ftp9"

我只使用调用函数:

ftp = ftplib.FTP('CENSORED')
connect_ftp(ftp)

但是,我已经跟踪代码如何使用 print 行运行,并且在第一次使用该模块时(甚至在 FTP 连接之前)我的脚本运行 ftp.voidcmd("NOOP ") 并且不排除它,因此最初不会尝试连接到 FTP。

输出是:

ftp1
ftp2
ftp4
ftp success #this is ran after the module is called

我承认我的代码不是最好的或最漂亮的,而且我还没有实现任何东西来确保如果我一直无法重新连接,我不会不断地重新连接,但我无法弄清楚为什么会这样'不是为了我的生活而工作,所以我还没有看到扩展模块的意义。这甚至是连接/重新连接到 FTP 的最佳方法吗?

提前致谢

最佳答案

连接到服务器:

ftp = ftplib.FTP('CENSORED')

因此,NOOP 命令自然会成功,因为它不需要经过身份验证的连接。

您的 connect_ftp 是正确的,只是您需要在 connect 调用中指定一个主机名。

关于python - 使用 NOOP 命令检查 FTP 连接是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53082647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com