如何使用SFTP刪除遠程目錄【Python】


轉自: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")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM