python sftp上传文件_python通过sftp远程传输文件

本文介绍了Python中的paramiko模块,通过该模块可以实现SFTP(Secure File Transfer Protocol)进行两台机器间的文件传输。尽管paramiko的sftp功能仅支持文件传输,但可以通过递归方式实现文件夹的完整拷贝。文章提供了详细的代码示例,包括获取sftp连接、从远程下载文件和目录、以及将本地文件和目录上传到远程服务器。
摘要由CSDN通过智能技术生成

python提供了一个第三方模块paramiko,通过这个模块可以实现两台机器之间的网络连接,sftp是paramiko的一个方法,使用sftp可以在两台机器之间互相传输

拷贝文件。然而paramiko的sftp只能拷贝文件,不能拷贝文件夹。要实现文件夹的拷贝,可以这样子思考:使用深度搜索遍历源目录,若是文件,直接拷贝到

目的目录;若是文件夹,则先在目的目录建立一个子目录,然后遍历子目录...使用递归函数,可以达到完全拷贝目录的目的。实现代码如下:

1.获取一个sftp句柄

import paramiko

#建立连接,获取sftp句柄

def sftp_connect(username,password,host,port=22):

client= None

sftp= None

try:

client= paramiko.Transport((host,port))

except Exception as error:

print error

else:

try:

client.connect(username=username, password=password)

except Exception as error:

print error

else:

sftp= paramiko.SFTPClient.from_transport(client)

return client,sftp

#断开连接

def disconnect(client):

try:

client.close()

except Exception as error:

print error

2.从远程机器上下载文件(夹)到本地

import os

import sys

from statimport S_ISDIR as isdir

def _check_local(local):

if not os.path.exists(local):

try:

os.mkdir(local)

except IOError as err:

print err

def get(sftp,remote,local):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值