簡體   English   中英

使用 python ftplib 下載但得到 ConnectionRefusedError: [Errno 111] Connection refused

[英]use python ftplib downloading but get ConnectionRefusedError: [Errno 111] Connection refused

我正在嘗試使用 ftplib 從 FTP 服務器下載,但出現ConnectionRefusedError: [Errno 111] Connection refused這是我的代碼:

import os
import sys
import configparser
import socket

def downloadfile(downftp, remotepath,localpath):
    bufsize=1024
    fp = open(localpath,'wb')     
    downftp.set_debuglevel(2)
    downftp.retrbinary('RETR ' + remotepath, fp.write, bufsize)
    fp.close()   
    
def ftpconnect(host,username,password):
    ftp = FTP()
    ftp.connect(host=host,port=10022)
    ftp.login(username, password)
    return ftp

def uploadfile(ftp,remotepath, localpath):
    bufsize=1024
    fp=open(localpath,'rb')       
    ftp.set_debuglevel(0)
    ftp.storbinary('STOR ' + remotepath, fp, bufsize)
    fp.close()
conftp = ftpconnect('42.*.**.201','cityof********.****erver','COU***123')
downloadfile(conftp,'/world/datapacks/sys/data/pgdc/functions/food.mcfunction','food.mcfunction')

所有錯誤:

  File "<pyshell#7>", line 1, in <module>
    ftp.dir()
  File "/usr/lib/python3.6/ftplib.py", line 575, in dir
    self.retrlines(cmd, func)
  File "/usr/lib/python3.6/ftplib.py", line 468, in retrlines
    with self.transfercmd(cmd) as conn, \
  File "/usr/lib/python3.6/ftplib.py", line 399, in transfercmd
    return self.ntransfercmd(cmd, rest)[0]
  File "/usr/lib/python3.6/ftplib.py", line 361, in ntransfercmd
    source_address=self.source_address)
  File "/usr/lib/python3.6/socket.py", line 724, in create_connection
    raise err
  File "/usr/lib/python3.6/socket.py", line 713, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

我試過ftp.set_pasv(True) ,它顯示相同的錯誤ConnectionRefusedError: [Errno 111] Connection refused

我試過ftp.set_pasv(False) ,它掛在

...
*cmd* 'RETR /world/datapacks/sys/data/pgdc/functions/food.mcfunction'
*put* 'RETR /world/datapacks/sys/data/pgdc/functions/food.mcfunction\r\n'
*get* '150 Opening ASCII mode data connection\n'
*resp* '150 Opening ASCII mode data connection'

請幫助。謝謝。

您是否能夠從命令行成功連接到 ftp 服務器,即沒有 python 代碼? 我認為這應該是檢查連接是否被 ftp 拒絕或 python 代碼有問題的第一步。

 ftp = FTP(host=ftp_host, user=ftp_user,passwd=ftp_pass)
 ftp.login()

你的上傳工作正常嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM