在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能。

1.功能实现

根据输入参数判断是文件还是目录,进行上传和下载

本地参数local需要与远程参数remote类型一致,文件以文件名结尾,目录以\结尾

上传和下载的本地和远程目录需要存在

异常捕获

2.代码实现

#!/usr/bin/python

# coding=utf-8

import paramiko

import os

def sftp_upload(host,port,username,password,local,remote):

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

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

sftp = paramiko.SFTPClient.from_transport(sf)

try:

if os.path.isdir(local):#判断本地参数是目录还是文件

for f in os.listdir(local):#遍历本地目录

sftp.put(os.path.join(local+f),os.path.join(remote+f))#上传目录中的文件

else:

sftp.put(local,remote)#上传文件

except Exception,e:

print('upload exception:',e)

sf.close()

def sftp_download(host,port,username,password,local,remote):

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

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

sftp = paramiko.SFTPClient.from_transport(sf)

try:

if os.path.isdir(local):#判断本地参数是目录还是文件

for f in sftp.listdir(remote):#遍历远程目录

sftp.get(os.path.join(remote+f),os.path.join(local+f))#下载目录中文件

else:

sftp.get(remote,local)#下载文件

except Exception,e:

print('download exception:',e)

sf.close()

if __name__ == '__main__':

host = '192.168.1.2'#主机

port = 22 #端口

username = 'root' #用户名

password = '123456' #密码

local = 'F:\\sftptest\\'#本地文件或目录,与远程一致,当前为windows目录格式,window目录中间需要使用双斜线

remote = '/opt/tianpy5/python/test/'#远程文件或目录,与本地一致,当前为linux目录格式

sftp_upload(host,port,username,password,local,remote)#上传

#sftp_download(host,port,username,password,local,remote)#下载

3.总结

以上代码实现了文件和目录的上传和下载,可以单独上传和下载文件,也可以批量上传和下载目录中的文件,基本实现了所要的功能,但是针对目录不存在的情况,以及上传和下载到多台主机上的情况,还有待完善。

本文标题: Python使用sftp实现上传和下载功能(实例代码)

本文地址: http://www.cppcns.com/jiaoben/python/182058.html

python sftp_Python使用sftp实现上传和下载功能(实例代码)相关推荐

  1. Python使用sftp实现上传和下载功能(实例代码)

    参考:Python-实现sftp客户端(连接远程服务器) import paramikotransport = paramiko.Transport(("106.15.88.182" ...

  2. 【Python学习 】Python实现的FTP上传和下载功能

    一.背景 最近公司的一些自动化操作需要使用Python来实现FTP的上传和下载功能.因此参考网上的例子,撸了一段代码来实现了该功能,下面做个记录. 二.ftplib介绍 Python中默认安装的ftp ...

  3. SFTP文件上传、下载

    SFTP文件上传.下载 public class SftpUtil {private String downFilePath = ""; // FTP文件下载路径private S ...

  4. 代理连接FTP实现上传和下载功能

    近日要实现FTP自动上传下载功能,但在办公区域受网络限制导致失败,最终研究通过办公区域的代理完成连接,并实现FTP上传和下载功能,同时将已上传和已下载的文件移动到默认的备份目录,保证定时任务不会重复获 ...

  5. php从ftp下载文件到本地,php使用ftp实现文件上传与下载功能

    本文实例为大家分享了php ftp文件上传与下载的具体代码,供大家参考,具体内容如下 ftp文件上传 php自带有ftp操作的函数包,一个比较简单实现的ftp文件上传操作可以通过以下几个步骤来完成: ...

  6. java上传和下载文件代码_JavaWeb中上传和下载文件实例代码

    一丶先引入上传下载的lib 二丶上传的的servlet package com.test.action; import java.io.file; import java.io.fileoutputs ...

  7. php 微信 语音,微信语音的上传与下载功能实现详解

    这篇文章主要介绍了微信语音上传 下载功能实例代码,需要的朋友可以参考下 假如现在有一个按钮 按住 说话 下面就是调用微信jssdk的方法var recorder; var btnRecord = $( ...

  8. XMLHttpRequest 对象实现文件上传和下载功能

    XMLHttpRequest 对象实现文件上传和下载功能(内含源码哦

  9. 使用SpringMVC框架实现文件上传和下载功能

    使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!-配置文件上传解释器 --> <mvc:annotation-driven>&l ...

最新文章

  1. 【ES6】变量的解构赋值
  2. c#操作xml实例 2009-03-13 20:00
  3. 这样设置ae导出文件的时候m1还是能顶得住的,3分钟的事情渲染一个开场
  4. java.lang.NumberFormatException: null
  5. [SDK2.2]Windows Azure Storage (16) 使用WCF服务,将本地图片上传至Azure Storage (上) 客户端代码...
  6. 001 - JavaScript Array String
  7. 余姚计算机编程培训,余姚编程软件培训
  8. java分割txt文件
  9. office宏病毒反弹shell实验
  10. 《微习惯:简单到不可能失败的自我管理法则》读书小结
  11. 从0带您打造企业级 Vue 服务器渲染 Nuxt.js (一) 入门
  12. 快速搭建一个小型博客网站
  13. 用python操作浏览器的三种方式,详细介绍并附代码
  14. 计算机与网络应用word题目解析,计算机二级word真题:《计算机与网络应用》教材的编排...
  15. USACO Section 1.1 Broken Necklace
  16. D3D11的深度模板缓冲
  17. 雅虎地图与谷歌地图坐标_打开Yahoo! 将与Google玩得很好,不竞争
  18. axis=0 与 axis=1 的区分
  19. Vue--》超详细教程——vue-cli脚手架的搭建与使用
  20. 我的世界java版游戏狗,我的世界Minecraft Java版17w46a公布

热门文章

  1. Batch Normalization导读
  2. Python 入门建议
  3. Chrome控制台使用详解 1
  4. Python基础教程(六):list、tuple、dictionary
  5. 代码覆盖率工具 Istanbul 入门教程
  6. cento7.6安装kubernetes1.14.1
  7. LeetCode18.四数之和 JavaScript
  8. Android 底部导航栏添加消息数目提示
  9. MySQL mysqldump命令
  10. Java HashMap的死循环的启示