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

Python用ftplib向FTP服务器txt文件追加内容报AttributeError如何解决

报错诱因
  • ftplib的storlines方法要求传入的第二个参数必须是类文件对象,该对象需要实现readline方法用来逐行读取内容上传。你直接传入了字符串类型的new_line,字符串没有readline方法,因此触发AttributeError。
  • 你使用的STOR指令是直接覆盖原文件内容,就算参数类型调整正确,也无法实现追加内容的需求,FTP协议中追加内容需要用APPE指令。
修正后的实现代码
import ftplib
from io import BytesIO

# 替换为你自己的FTP连接信息
HOST = "xxx.xxx.xxx.xxx"
PORT = 21
USER = "your_username"
PASSWD = "your_password"

ftp = ftplib.FTP()
ftp.connect(host=HOST, port=PORT)
ftp.login(user=USER, passwd=PASSWD)

# 提前将待写入的内容编码为字节
new_line = '\n this is a new line'.encode('utf-8')
# 将字节内容包装为支持readline方法的类文件对象
file_obj = BytesIO(new_line)
# 使用APPE指令实现内容追加
ftp.storlines('APPE test.txt', file_obj)

file_obj.close()
ftp.quit()
补充说明
  • 如果需要写入中文等非ASCII内容,注意指定编码格式,避免出现乱码,例如new_line = '\n 这是新增的中文行'.encode('gbk')或者encode('utf-8'),需要和原文件的编码格式保持一致。
  • 所有操作完成后主动关闭FTP连接,避免不必要的资源占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:06:01