python使用ftplib模块,简单通过ftp上传文件

功能描述

在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()

注意事项

  • 如果通过url访问刚才上传的文件,尽可能保证文件名是纯英语+数字,不要出现中文字符
posted @ 2021-05-11 18:52  左舷弹幕薄  阅读(501)  评论(0编辑  收藏  举报