我想通过 SSH 递归下载一个包含未知内容的目录,并一直在尝试 Paramiko。我看过几个如何上传目录的示例,但没有一个示例涵盖递归下载。
我可以列出目录中的所有项目,但无法找到一种方法来了解该项目是文件(要下载)还是目录(要递归调用)。
transport = paramiko.Transport((MY_IP, 22))
transport.connect(username=MY_NAME, password=MY_PASS)
sftp = paramiko.SFTPClient.from_transport(transport)
file_list = sftp.listdir(path='/home/MY_HOME_DIR')
for item in file_list:
# Here is an item name... but is it a file or directory?
print(item)
sftp.close()
transport.close()
那么我如何知道一个项目是文件还是目录呢?
from stat import S_ISDIR
def isdir(path):
try:
return S_ISDIR(sftp.stat(path).st_mode)
except IOError:
#Path does not exist, so by definition not a directory
return False
...假设sftp
是一个开放的 Paramiko SFTP 连接。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)