python 实现 ftp 服务端和客户端
python 中内置了一个 ftp 客户端,但是要实现 ftp 服务端还需要安装一个第三方库 pyftpdlib
pyftpdlib
pyftpdlib 实现了一个功能完整的异步 FTP 服务,开源代码地址:https://github.com/giampaolo/pyftpdlib
安装 pyftpdlib
安装方式有很多种,推荐使用 pip;
pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。
安装 pip:
安装 python; 这个是必须安装的;
下载 pip:
官网地址:https://pypi.org/project/pip/#downloads; 下载完毕后,解压
打开命令行窗口,进入到 pip 解压后的目录;执行代码
python3 setup.py install
进行安装,安装完成后,将 pip 加入到系统环境变量中
验证打开命令行窗口,输入 pip list 或者 pip3 list
以上只针对于 windows 系统,其他系统也可以参考;
安装所需库:打开命令行窗口,输入执行以下代码,并回车
pip install pyftpdlib
等待提示第三库安装成功既可;
启动 FTP 服务
pyftpdlib 安装成功后,在命令行输入
python3 -m pyftpdlib -p 21
即可启动一个简单的 ftp 服务,不够默认启动的 ftp 服务只有一个无密码的匿名用户,如果想添加用户和权限,需要编码实现;
编码实现一个有用户和权限认证的 FTP 服务端
运行以上代码,启动一个 ftp 服务;
ftp 客户端
以上在本地启动了一个 ftp 服务,测试的时候,可以使用 windows 自有的 ftp 客户端连接测试;
打开命令行窗口,输入 ftp 127.0.0.1 输入用户,密码测试结果
另外,python 中也内置了 ftp 客户端库 ftplib
使用 python 中的 FTP 客户端
首先导入 FTP
from ftplib import FTP
实例化 FTP 对象
ftp = FTP()
连接 ftp,传入 host 和端口
ftp.connect(host, port)
登录到 ftp,使用 login 方法,传入用户密码
ftp.login(u,p)
登录 ftp 成功,进行文件的上传和下载操作;
上传使用 storbinary 方法:
下载使用 retrbinary 方法
执行完 FTP 操作后,需要关闭连接
以上至实现了 ftp 的日常操作;关于 ftp 其他相关操作,可以参考官方文档;
版权声明: 本文为 InfoQ 作者【技能实验室】的原创文章。
原文链接:【http://xie.infoq.cn/article/cde438562905f4f1ff61cbd2a】。文章转载请联系作者。
评论