Python使用ftplib上传FTP文件时报553找不到文件或目录错误如何解决
问题原因
STOR命令参数使用错误:STOR后需要传入FTP服务器端的目标存储路径,你错误传入了本地文件的绝对路径,你的FTP服务器不存在/Users/rs/Desktop/DESKTOP/这类目录结构,因此返回553路径不存在错误。- 从运行日志的FTP目录列表可以看到,服务器根目录明确标注
DO NOT UPLOAD FILES HERE,你没有根目录写入权限,文件必须上传到htdocs子目录下。
解决方法
- 用
os.path.basename()从本地完整路径中提取纯文件名 - 拼接服务器端的合法存储路径,指定到
htdocs目录下
修改后的代码片段
将原有上传逻辑:
with open(filename, "rb") as file: ftp.storbinary(f"STOR {filename}", file)
替换为:
import os # 提取本地文件的纯文件名 remote_filename = os.path.basename(filename) # 拼接服务器端目标路径,上传到htdocs目录 remote_path = f"htdocs/{remote_filename}" with open(filename, "rb") as file: ftp.storbinary(f"STOR {remote_path}", file)
修改后重新运行即可正常上传,上传后的文件可以在FTP的htdocs目录下找到。
内容的提问来源于stack exchange,提问作者newbPyth
相关产品推荐
相关产品推荐

