我在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()
答案 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)
。