python删除SFTP服务器文件

转自:https://stackoverflow.com/questions/20507055/recursive-remove-directory-using-sftp

注意:SFTP的rmdir只能删除空目录,所以如果目录中存在文件或子目录,需要先删除这些内容再删除该目录。如下所示代码可以参考:

1 import os
2 import paramiko
3 from stat import S_ISDIR
4
5 server =“any.sftpserver”
6 username = “uname”
7 password = “***”
8 path_to_hosts_file = os.path.join("~", “.ssh”, “known_hosts”)
9
10 ssh = paramiko.SSHClient()
11 ssh.load_host_keys(os.path.expanduser(path_to_hosts_file))
12 ssh.connect(server, username=username, password=password)
13
14 def isdir(path):
15 try:
16 return S_ISDIR(sftp.stat(path).st_mode)
17 except IOError:
18 return False
19
20 def rm(path):
21 files = sftp.listdir(path=path)
22
23 for f in files:
24 filepath = os.path.join(path, f)
25 if isdir(filepath):
26 rm(filepath)
27 else:
28 sftp.remove(filepath)
29
30 sftp.rmdir(path)
31
32 if name == “main”:
33 rm("/path/to/some/directory/to/remove")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值