反向的FTPlib错误

时间:2017-09-28 07:01:45

标签: python python-3.x ftplib

我在Line “ftp.retrbinary(”RETR“+ filename,localfile.write)”中收到错误。它没有说明我只是得到了什么错误 ftplib.error_perm:500未知命令。 somoen可以帮我解决这个问题吗?

from ftplib import FTP

def grabfile ():

    if not os.path.exists(dtt):
        os.makedirs(dtt)


    ftp = FTP('IP')
    ftp.login(user="ftpread", passwd = 'PSW')
    ftp.cwd("/var/log/")
    filename = "scxmlsoap.log"
    #localfilename = "scxmlsoap.log"
    localfile = open(filename, "wb")
    ftp.retrbinary("RETR" + filename, localfile.write)
    ftp.quit()
    localfile.close()
    f.close()

def main():
    grabfile()

main()

2 个答案:

答案 0 :(得分:1)

只需在RETR之后添加一个空格,这是一个更新版本。

ftp = FTP('IP')
ftp.login(user="ftpread", passwd = 'PSW')
ftp.cwd("/var/log/")
filename = "scxmlsoap.log"
#localfilename = "scxmlsoap.log"
localfile = open(filename, "wb")
ftp.retrbinary("RETR %s" % filename, localfile.write) # <-- a space added
ftp.quit()
localfile.close()
f.close()

答案 1 :(得分:1)

'RETR'与文件名之间没有空格这一事实意味着您正在发送单个命令:'RETRscxmlsoap.log'。当然,这不会被解释为您需要的'RERT'命令。

只需在它们之间添加空格:'RERT {}'.format(filename)