如何使用SFTP刪除遠端目錄 Python

2022-08-09 05:03:13 字數 1177 閱讀 9349

**:

注意:sftp的rmdir只能刪除空目錄,所以如果目錄中存在檔案或子目錄,需要先刪除這些內容再刪除該目錄。如下所示**可以參考:

1

importos2

import

paramiko

3from stat import

s_isdir

45 server ="

any.sftpserver

"6 username = "

uname

"7 password = "

***"

8 path_to_hosts_file = os.path.join("

~", "

.ssh

", "

known_hosts")

910 ssh =paramiko.sshclient()

11ssh.load_host_keys(os.path.expanduser(path_to_hosts_file))

12 ssh.connect(server, username=username, password=password)

1314

defisdir(path):

15try:16

return

s_isdir(sftp.stat(path).st_mode)

17except

ioerror:

18return

false

1920

defrm(path):

21 files = sftp.listdir(path=path)

2223

for f in

files:

24 filepath =os.path.join(path, f)

25if

isdir(filepath):

26rm(filepath)

27else:28

sftp.remove(filepath)

2930

sftp.rmdir(path)

3132

if__name__ == "

__main__":

33 rm("

/path/to/some/directory/to/remove

")

如何刪除多級目錄

昨天看見乙個貼子 chinaasp 問怎麼刪除目錄,以前一直可以,但昨天出了問題,原來他只是把他下級的檔案刪了後就刪 目錄所以如果多幾級就有問題。我的這個只能暫時湊活著用,如果你的目錄沒有十幾層的話應該沒有問題的吧 但我不熟悉遞迴只能做到 deltree path rmdir path 才能刪除這個...

如何刪除多級目錄

昨天看見乙個貼子 chinaasp 問怎麼刪除目錄,以前一直可以,但昨天出了問題,原來他只是把他下級的檔案刪了後就刪 目錄所以如果多幾級就有問題。我的這個只能暫時湊活著用,如果你的目錄沒有十幾層的話應該沒有問題的吧 但我不熟悉遞迴只能做到 deltree path rmdir path 才能刪除這個...

如何刪除多級目錄

昨天看見乙個貼子 chinaasp 問怎麼刪除目錄,以前一直可以,但昨天出了問題,原來他只是把他下級的檔案刪了後就刪 目錄所以如果多幾級就有問題。我的這個只能暫時湊活著用,如果你的目錄沒有十幾層的話應該沒有問題的吧 但我不熟悉遞迴只能做到 deltree path rmdir path 才能刪除這個...