我需要递归列出包含大量子目录(超过 16,000 个(的目录的内容。
我目前正在使用Paramiko的SFTP客户端,该客户端不提供任何递归listdir
功能。所以我必须首先在父文件夹上运行listdir
,然后为每个(许多,许多(子目录运行另一个listdir
。运行时间太长。
有没有办法在单个 SFTP 调用中运行递归listdir
?我不仅限于Paramiko软件包,它只是我们目前正在使用的软件包。
由于当地的管理限制,我无法使用Paramiko的ssh.exec_command('ls -R <path>')
(它只会返回错误消息(。
所以我必须首先在父文件夹上运行
listdir
,然后为每个(许多,许多(子目录运行另一个listdir
。
这是正确的方法。
有关实现的示例,请参阅
来自 Linux 的 Python pysftp get_r 在 Linux 上运行良好,但在 Windows 上则不行。
有没有办法在单个 SFTP 调用中运行递归
listdir
?我不仅限于Paramiko软件包,它只是我们目前正在使用的软件包。
不。这不是帕拉米科的限制。SFTP 协议本身没有任何方法来检索递归列表。并不是说其他类似的协议(如FTP(通常具有这样的功能,所以它并不是一个真正的限制。