VAUBANTENG 2021-06-22 18:06 采纳率: 0%
浏览 568

ftplib 下载文件报错ftplib.error_perm

from ftplib import FTP

def ftpconnect():
    ftp_server = 'xxxxxxxxxxx'
    username = 'xxxxxxxxxx'
    password = 'xxxxxxxxxx'
    ftp = FTP()
    ftp.set_debuglevel(2)
    ftp.connect(ftp_server, 21)
    ftp.login(username, password)
    return ftp

def downloadfile(time = '20200521', filename = '20052108.000'):
    remotepath = time + '\\GRAPES_3KM\\TMP\\2M_ABOVE_GROUND\\'
    ftp = ftpconnect()
    print(ftp.getwelcome())
    localpath = 'D:\\launch1\\tem_forecast\\data\\Graps-3km\\'

    file = open(localpath + filename, 'wb')
    ftp.retrbinary('RETR' + remotepath + filename, file.write)
    file.close()
    ftp.quit()
if __name__ == "__main__":
    downloadfile(time='20200521', filename='20052108.000')

以下是输出及报错情况:

D:\program\anaconda\python.exe D:/launch1/tem_forecast/down_data.py
=====================================
*get* '220 (vsFTPd 3.0.2)\n'
*resp* '220 (vsFTPd 3.0.2)'
*cmd* 'USER MicapsData'
*put* 'USER MicapsData\r\n'
*get* '331 Please specify the password.\n'
*resp* '331 Please specify the password.'
*cmd* 'PASS ***************'
*put* 'PASS ***************\r\n'
*get* '230 Login successful.\n'
*resp* '230 Login successful.'
*welcome* '220 (vsFTPd 3.0.2)'
220 (vsFTPd 3.0.2)
*cmd* 'TYPE I'
*put* 'TYPE I\r\n'
*get* '200 Switching to Binary mode.\n'
*resp* '200 Switching to Binary mode.'
*cmd* 'PASV'
*put* 'PASV\r\n'
*get* '227 Entering Passive Mode (10,181,27,199,126,156).\n'
*resp* '227 Entering Passive Mode (10,181,27,199,126,156).'
*cmd* 'RETR20200521\\GRAPES_3KM\\TMP\\2M_ABOVE_GROUND\\20052108.000'
*put* 'RETR20200521\\GRAPES_3KM\\TMP\\2M_ABOVE_GROUND\\20052108.000\r\n'
*get* '500 Unknown command.\n'
*resp* '500 Unknown command.'
Traceback (most recent call last):
  File "D:/launch1/tem_forecast/down_data.py", line 58, in <module>
    downloadfile(time='20200521', filename='20052108.000')
  File "D:/launch1/tem_forecast/down_data.py", line 26, in downloadfile
    ftp.retrbinary('RETR' + remotepath + filename, file.write)
  File "D:\program\anaconda\lib\ftplib.py", line 442, in retrbinary
    with self.transfercmd(cmd, rest) as conn:
  File "D:\program\anaconda\lib\ftplib.py", line 399, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "D:\program\anaconda\lib\ftplib.py", line 365, in ntransfercmd
    resp = self.sendcmd(cmd)
  File "D:\program\anaconda\lib\ftplib.py", line 273, in sendcmd
    return self.getresp()
  File "D:\program\anaconda\lib\ftplib.py", line 246, in getresp
    raise error_perm(resp)
ftplib.error_perm: 500 Unknown command.

Process finished with exit code 1
找了很久,还是不知道为什么报错,各位藏龙卧虎,请指点迷津!

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2021-06-22 18:37
    关注

    文件路径或者文件名不对。你换个路径。直接读取d盘下的文件试试。

    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘