) F" X$ q$ \$ l0 ?* k- ~sftp.put('local_file_path', 'remote_file_path') % F! V! O1 k' u8 G U+ n " {) S# i7 t7 H5 _. e" c$ v. @下载文件# S. l9 P1 D. z/ ?' U
除了上传文件,我们还可以从远程服务器上下载文件。使用SFTPClient对象的get方法可以将远程服务器上的文件下载到本地。需要提供远程服务器文件路径和本地目标路径:8 Z3 K/ Z: B! B# h1 _$ P
" E9 N" w, H5 v7 B8 `/ D: n. a) Y
sftp.get('remote_file_path', 'local_file_path')# E. g, V R. T4 H2 v, d2 h$ l
( c: F: h v' K- e, @: F
列出文件和目录% i( H9 p- j, @( Q t
使用SFTPClient对象的listdir方法可以列出指定目录下的文件和目录。需要提供目标路径:& s; _- b7 ^( ?
6 M% A' ~! J9 X+ [: @5 r8 z" \0 ?files = sftp.listdir('directory_path')2 W4 @6 m" `/ E) n; D
- U; I/ i" T }6 S
删除文件+ G1 t6 x' y6 B Y- _
使用SFTPClient对象的remove方法可以删除指定的文件。需要提供文件路径:7 d/ O2 {" k6 H9 V5 |& d
5 ?5 b8 M) O% V4 ~7 @% l) {1 n
sftp.remove('file_path') 5 L8 B( H$ [4 H. n8 ~& T ) U: F3 h; Y0 Z# F$ R关闭SFTP会话和SSH连接% z$ z, S( w9 J* M+ _
完成SFTP操作后,我们需要关闭SFTP会话和SSH连接。分别调用SFTPClient对象的close方法和SSHClient对象的close方法:0 S9 Z6 w% \$ N* K
" A# B* O/ s1 K) ~sftp.close()4 q, c( o9 Q1 k0 h9 Y
ssh.close() ) W9 t2 S" }" L4 E % ~. S) K: v4 b完整示例# V. P# x- ?$ S+ u( g! w
下面是一个完整的示例,演示了如何使用Python和paramiko库进行SFTP操作: 9 y, I' R0 K4 C; r; g, u: P) d* T# q4 v! Z& p* }( Q& Q
import paramiko/ R7 c/ [) b P: _& Z& u3 D
' M% H2 T' \ f8 o n$ [ssh = paramiko.SSHClient() 9 a2 h& E* V1 A T0 D4 Kssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - L* b) J! G6 ], g6 z4 ~4 [8 L0 {* F5 k; |
ssh.connect('hostname', port=22, username='username', password='password')% A5 G; J/ g9 |- m# J1 h, E1 a
5 T. {' J" o6 f
sftp = ssh.open_sftp() % ]+ E0 c% H% x) t3 a, d( R, ]4 B8 y. l2 E# D) B" n, K
sftp.put('local_file_path', 'remote_file_path')+ C4 }7 @& a+ Y* n+ ~1 [
sftp.get('remote_file_path', 'local_file_path')- Q; I2 w, G, \' y9 \$ M