在ftp服务器开启的情况下,使用ftplib模块实现本地文件上传的功能(python -V 3.85),和经常使用的pymysql,pymongo等模块不同,ftplib模块的登录,连接和登录是两个分开的部分。
import ftplib
from os import path
# 预先定义好FTP的四项必须元素,主机ip
dict_ftp = {
"host":"xxx.xxx.xxx.xxx",
"port":端口号,
"user":"username",
"password":"password"
}
# 要传输文件的路径
filepath = filepath
# 要传输文件的文件名
filename = path.splitext(filepath)[-1]
# 创建一个ftp对象
obj_ftp = ftplib.FTP()
# 通过字典中预先定义好的值,用.connect()方法连接到ftp
obj_ftp.connect(dict_ftp.get("host"),dict_ftp.get("port"))
# 连接好之后,用.login()登录,如果前一步的连接有问题的话,是走不到这一步的
obj_ftp.login(dict_ftp.get("user"),dict_ftp.get("password"))
# 打开文件获得句柄,注意.storbinary()中的三个参数,分别是文件名,句柄,缓冲区大小,其中文件名之前的STOR是必要的
with open(filepath,"rb") as handle:
obj_ftp.storbinary(f"STOR {filename}",handle,1024)
obj_ftp.close()
原文:https://www.cnblogs.com/himan47/p/14756815.html