一、安装Paramiko和PyCrypto
Paramiko是一款用于实现SSH协议的Python库,而PyCrypto则是一个用于实现加密的Python库,所以在使用Paramiko进行SFTP文件传输之前,需要先安装它们。
pip install paramiko pycrypto
二、建立一个SSH连接对象
在使用Paramiko进行SFTP文件传输之前,需要先建立一个SSH连接对象。在建立连接前需要设置主机地址、端口号等信息。
import paramiko transport = paramiko.Transport(('192.168.1.100', 22)) # 主机IP和端口号 transport.connect(username='username', password='password') # 用户名和密码 sftp = paramiko.SFTPClient.from_transport(transport) # 建立SFTP连接
三、上传文件
使用SFTPClient的put方法可以将本地文件上传至远程服务器。
sftp.put(local_path, remote_path) # local_path为本地文件路径,remote_path为远程服务器路径
四、下载文件
使用SFTPClient的get方法可以将远程服务器文件下载至本地。
sftp.get(remote_path, local_path) # remote_path为远程服务器文件路径,local_path为本地文件路径
五、遍历目录
在遍历整个目录树时,可以使用SFTPClient的walktree方法。
def print_info(item): print(item.filename, item.st_size) # filename为文件名,st_size为文件大小 sftp.walktree('/remote/dir', print_info, None, True) # /remote/dir为远程服务器目录
六、关闭连接
文件传输完成后需要关闭连接以释放资源。
sftp.close() # 关闭SFTP连接 transport.close() # 关闭SSH连接