龙空技术网

7个步骤,教你快速学会用python实现ftp文件传输功能(收藏了)

程序员陈平安 867

前言:

现在你们对“python操作ftp”大体比较看重,同学们都需要知道一些“python操作ftp”的相关内容。那么小编同时在网上收集了一些对于“python操作ftp””的相关资讯,希望朋友们能喜欢,你们快快来了解一下吧!

文章主要为大家详细介绍了python实现ftp文件传输功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下!!!

本文实例为大家分享了python实现ftp文件传输的具体代码,供大家参考,具体内容如下

主要步骤可以分为以下几步:

1.读取文件名2.检测文件是否存在3.打开文件4.检测文件大小5.发送文件大小和 md5值给客户端6.等客户端确认7.开始边读边发数据

服务器端代码:

客户端代码:

用80M的文件传输测试,效果如下:

程序升级:

前面的代码还没添加md5进行验证,现在对代码进行升级

服务器端代码:

客户端代码:

两个程序在linux 环境下运行,结果如下:

可以看到传输后文件大小变大了一点点,而且md5前后值也不同,说明文件传输发生了改变。

现在讲程序在windows环境下运行,结果如下:

此时可以看到windows上没有问题,文件大小相同,且md5值也一致。

原因分析:

之所以会发生这种情况,是因为在linux上运行时,最后一次传输文件与发送md5值的时候,发生可粘包,导致最后一次接收文件的时候,连同md5的数据一并发送了。而客户端也当作一条接收信息,全部接收了。所以客户端出现没有收到来自服务器端的md5值,多出来的那一点点,就是md5值的大小。

解决方法:

在接收文件的时候,判断当前剩余多少文件需要接收,如果大于1024,就接收1024大小的文件,否则就只接收剩下全部的文件,防止最后一次接收多余的数据。

只需要对客户端代码进行修改,修改后代码如下:

以上就是本文的全部内容啦,更多相关内容关注小编敬请期待为你带来更优质的相关文章!

结尾

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

标签: #python操作ftp