我有一个简单的需求,即将文件放在SFTP服务器上。我找到了pysftp和Paramiko库,它们似乎都可以实现这一点。我已经使用Paramiko开发了一个简单的应用程序,但是我找不到适当的来源来比较这两个库,以便决定哪个库更好。它们各自的优缺点是什么?
pysftp自2016年以来没有更新,因此似乎是一个被放弃的项目。它在最新版本中还存在一些重要问题,但从未修复。特别是在Windows上使用时,递归传输无法正常工作。因此,在Windows上,pysftp与(维护的)Paramiko相比没有明显优势。
如果您没有任何复杂的低级需求(例如非常规的主机密钥验证方法, 代理, 高级键盘交互式认证, 设置超时时间等),使用pysftp可能更容易。另一方面,由于pysftp似乎已经停止开发,使用它进行新的开发可能不是一个好主意。
如果您需要低级功能,请使用Paramiko。
如果您既需要Paramiko的低级功能又需要pysftp的高级功能,请使用Paramiko,并检查pysftp代码以获取高级功能。或者,您还可以在以下问题的答案中找到一种完整且与平台无关的递归传输的实现方法:
通过使用pysftp Connection.sftp_client
访问一些未在pysftp中公开的Paramiko功能,该函数返回底层的Paramiko SFTPClient
对象。有关示例,请参见pysftp:如何更新最后修改日期。