您的位置:

使用Paramiko SFTP进行Python文件传输的一些技巧

一、安装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连接