重新连接FTP客户端
reconnecting-ftp的Python项目详细描述
重新连接ftp
重新连接FTP提供了一个包装ftplib.ftp的FTP客户端。如果服务器是 断开连接,并记住上次录制的工作目录。
我们发现在运行了很长时间,并且需要反复迭代的脚本中,重新连接特别重要。 通过ftp服务器上的文件。
由于结果必须是原子的,我们必须将结果从 ftplib.FTP.mlsd(目录项的iterable)到目录项的显式列表。当这给你 原子性(无论您遍历什么,都将在单个连接中完成),所有目录项都需要存储 在记忆中。
此外,我们还提供了mlstftp命令的一个实现,该命令在原始^{tt3}中丢失$ 客户。
用法
importreconnecting_ftpwithreconnecting_ftp.Client(hostname="some-host.com",port=21,user="some-user",password="some-password")asftp:# change working directoryftp.cwd(dirname='/some-dir/some-subdir')# you can execute here all the commands as provided in ftplib.FTP. If the connection failed, the command will# be retried while it succeeds or the maximum number of retries haven been exhausted..# MLST the filepth,entry=ftp.mlst(filename='some-file.txt')# iterate over a directory entries atomicallyforname,entry_dictinftp.mlsd(path=parent_path):# do somethingpass
安装
- 创建虚拟环境:
python3 -m venv venv3
- 启动:
source venv3/bin/activate
- 安装用pip重新连接的ftp:
pip3 install reconnecting_ftp
开发
- 查看存储库。
- 在存储库根目录中,创建虚拟环境:
python3 -m venv venv3
- 激活虚拟环境:
source venv3/bin/activate
- 安装开发依赖项:
pip3 install -e .[dev]
- 我们提供一组预提交检查,lint和检查代码的格式并运行单元测试。在本地运行它们 从具有开发依赖关系的激活虚拟环境中:
./precommit.py
- 预提交脚本还可以自动格式化代码:
./precommit.py --overwrite