Python 中的递归 SFTP listdir?

Recursive SFTP listdir in Python?

我需要递归列出包含很多子目录(超过 16,000 个)的目录的内容。

我目前正在使用 Paramiko's SFTP client,它不提供任何递归 listdir 功能。所以我必须先在父文件夹上 运行 listdir,然后在每个(很多很多)子目录上再 listdir。 运行.

耗时过长

有什么方法可以在单个 SFTP 调用中 运行 递归 listdir 吗?我不限于 Paramiko 包,它只是我们当前使用的包。

由于本地管理限制,我无法使用 Paramiko 的 ssh.exec_command('ls -R <path>')(它只会 return 一条错误消息)。

So I have to first run listdir on the parent folder, and then another listdir for each of the (many, many) subdirectories.

这是正确的方法。

有关实施示例,请参阅


Is there any way to run the recursive listdir in a single SFTP call? I'm not limited to the Paramiko package, it's just the package that we're currently using.

没有。这不是 Paramiko 的限制。 SFTP 协议本身没有任何方法来检索递归列表。并不是说其他​​类似的协议()普遍具有这样的功能,所以它并不是一个真正的限制