You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接IP型FTP服务器实现文件上传下载报错求助

Python FTP上传功能代码问题排查

现有代码的错误点

  • 服务器IP填写错误:你定义的FTP_HOST = '192.16.0.20',和实际可用的IP192.168.0.20相比缺失了一位8,会直接触发连接失败报错。
  • 端口参数错误:
    1. 端口要求传入整数类型,你定义的PORT='21'是字符串类型,类型不匹配
    2. ftplib.FTP类的构造函数第二个位置参数是登录用户名,不是端口,直接按你写的顺序传参,端口值会被识别为用户名,直接导致登录逻辑完全错误
  • 格式转义问题:你贴出的代码里"是HTML格式的双引号转义符,实际Python代码中需要替换为普通双引号"才能正常解析。

修复后的完整代码

import ftplib

# FTP服务器配置
FTP_HOST = '192.168.0.20'
PORT = 21
FTP_USER = 'ftpuser'
FTP_PASS = 'ftpuser'

# 初始化FTP实例
ftp = ftplib.FTP()
# 先指定地址端口连接服务器
ftp.connect(host=FTP_HOST, port=PORT)
# 再传入账号密码登录
ftp.login(user=FTP_USER, passwd=FTP_PASS)
# 设置UTF-8编码
ftp.encoding = "utf-8"

# 上传文件示例
filename = "test.txt"
with open(filename, "rb") as file:
    ftp.storbinary(f'STOR {filename}', file)

# 可选:下载文件示例,将服务器上的test.txt下载到本地命名为test_download.txt
# download_filename = "test.txt"
# local_save_path = "test_download.txt"
# with open(local_save_path, "wb") as f:
#     ftp.retrbinary(f'RETR {download_filename}', f.write)

# 列出服务器当前目录文件
ftp.dir()

# 关闭连接
ftp.quit()

额外注意事项

如果连接后上传/下载超时,可以尝试添加一行ftp.set_pasv(True)开启被动模式,大部分局域网FTP服务器都要求被动模式才能正常传输文件。如果还是报错可以打印ftp.getwelcome()查看服务器返回的连接信息,确认连接是否正常建立。

内容的提问来源于stack exchange,提问作者josiah waboyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 09:27:05