python paramiko利用sftp上传目录到远程的实例


Posted in Python onJanuary 03, 2019

网上大部分都是上传文件,于是个人参照网上一些博客的内容,写了一个把windows上目录上传到远程linux的一个小程序。

下面是代码:

class ExportPrepare(object):
 def __init__(self):
 pass

 def sftp_con(self):
  t = paramiko.Transport((self.ip, self.port))
  t.connect(username=self.username, password=self.password)
  return t

 # 找到所有你要上传的目录已经文件。
 def __get_all_files_in_local_dir(self, local_dir):
  all_files = list()

  if os.path.exists(local_dir):
   files = os.listdir(local_dir)
   for x in files:
    filename = os.path.join(local_dir, x)
    print "filename:" + filename
    # isdir
    if os.path.isdir(filename):
     all_files.extend(self.__get_all_files_in_local_dir(filename))
    else:
     all_files.append(filename)
  else:
   print '{}does not exist'.format(local_dir)
  return all_files

 # Copy a local file (localpath) to the SFTP server as remotepath
 def sftp_put_dir(self):
  try:
 #本地test目录上传到远程root/usr/下面
 local_dir = "c:/test"
 remote_dir = "/root/usr/test"
 
   t = self.sftp_con()
   sftp = paramiko.SFTPClient.from_transport(t)
   # sshclient
   ssh = paramiko.SSHClient()
   ssh.load_system_host_keys()
   ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
   ssh.connect(self.ip, port=self.port, username=self.username, password=self.password, compress=True)
   ssh.exec_command('rm -rf ' + remote_dir)
   if remote_dir[-1] == '/':
    remote_dir = remote_dir[0:-1]
   all_files = self.__get_all_files_in_local_dir(local_dir)
   for x in all_files:
    filename = os.path.split(x)[-1]
    remote_file = os.path.split(x)[0].replace(local_dir, remote_dir)
    path = remote_file.replace('\\', '/')
 # 创建目录 sftp的mkdir也可以,但是不能创建多级目录所以改用ssh创建。
    tdin, stdout, stderr = ssh.exec_command('mkdir -p ' + path)
    print stderr.read()
    remote_filename = path + '/' + filename
    print u'Put files...' + filename
    sftp.put(x, remote_filename)
   ssh.close()
  except Exception, e:
   print e
 
 
if __name__=='__main__':
 export_prepare = ExportPrepare()
 export_prepare.sftp_put_dir()

比较匆忙,不足之处可以指出,共同进步。

以上这篇python paramiko利用sftp上传目录到远程的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python写入xml文件的方法
May 08 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
Jun 14 Python
K-means聚类算法介绍与利用python实现的代码示例
Nov 13 Python
python实现二叉树的遍历
Dec 11 Python
详解python使用递归、尾递归、循环三种方式实现斐波那契数列
Jan 16 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
Python转换时间的图文方法
Jul 01 Python
python3 线性回归验证方法
Jul 09 Python
python中的逆序遍历实例
Dec 25 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
Oct 20 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
python scp 批量同步文件的实现方法
Jan 03 #Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 #Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 #Python
Python中shapefile转换geojson的示例
Jan 03 #Python
Python关于excel和shp的使用在matplotlib
Jan 03 #Python
Python使用folium excel绘制point
Jan 03 #Python
Python获取航线信息并且制作成图的讲解
Jan 03 #Python
You might like
程序员编程十条戒律
2009/07/09 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
浅析JavaScript函数的调用模式
2016/08/10 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
Vue中的vue-resource示例详解
2018/11/02 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
python更新列表的方法
2015/07/28 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
opencv python 图像去噪的实现方法
2018/08/31 Python
python如何求解两数的最大公约数
2018/09/27 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
自考生自我评价分享
2014/01/18 职场文书
就业协议书范本
2014/04/11 职场文书
乡镇党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
小学教研工作总结2015
2015/05/13 职场文书
监守自盗观后感
2015/06/10 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android