从服务器下载ftp文件;我遇到550错误(系统找不到指定的文件)

时间:2019-05-17 15:55:16

标签: python ftp ftplib downloadfile

我对设置FTP下载有点陌生,并且正在寻找解决问题的方法,以了解如何解决此问题。我可以正常登录到FTP服务器,但是在提取文件并将其保存到我的目录时遇到问题。我认为问题出在我如何设置retrbinary代码,但我不确定。

关于背景,我正在Windows 10计算机上的Spyder IDE for python中运行此代码。我尝试了其他方法,但没有一个方法能像我这样接近我。

```python

from ftplib import FTP
import os

os.getcwd()

os.chdir('U:\ABA\xxx\xxx)

ftp = FTP()

HOST = 'xx.xxx.xx.xx'

PORT = xx

ftp.connect(HOST, PORT)

ftp.login(user='xxx', passwd='xxx')

ftp.dir()
 #Other server's directory shows '7 test2.txt' file

with open('7 test2.txt', 'wb') as file:
    ftp.retrbinary('RETR %s' % '7 test2.txt', file.write)

```

预期:

从其他服务器上拉下txt文件并将其另存为我选择的目录中的txt文件

实际:

error_perm:550系统找不到指定的文件。

错误消息

File "<ipython-input-29-de30637eb893>", line 24, in <module>
    ftp.retrbinary('RETR %s' % '7 test2.txt', file.write)

  File "C:\ProgramData\Anaconda3\lib\ftplib.py", line 442, in retrbinary
    with self.transfercmd(cmd, rest) as conn:

  File "C:\ProgramData\Anaconda3\lib\ftplib.py", line 399, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]

  File "C:\ProgramData\Anaconda3\lib\ftplib.py", line 365, in ntransfercmd
    resp = self.sendcmd(cmd)

  File "C:\ProgramData\Anaconda3\lib\ftplib.py", line 273, in sendcmd
    return self.getresp()

  File "C:\ProgramData\Anaconda3\lib\ftplib.py", line 246, in getresp
    raise error_perm(resp)

error_perm: 550 The system cannot find the file specified.

0 个答案:

没有答案