python实现上传文件到linux指定目录的方法


Posted in Python onJanuary 03, 2020

今天接到一个小需求,就是想在windows环境下,上传压缩文件到linux指定的目录位置并且解压出来,然后我想了一下,这个可以用python试试写下。

环境:

1.linux操作系统一台
2.windows环境安装Python3.x
3.Pycharm IDE环境

大家如果对paramiko模块不熟悉的话,可以去了解哈。

上传文件用到SFTPCLient,SFTPCLient作为一个sftp的客户端对象,根据ssh传输协议的sftp会话,实现远程文件操作,如上传、下载、权限、状态。

代码如下

#!/usr/bin/env python
import paramiko
import sys
src_file = sys.argv[1]#windows下的源文件
dsc_path = sys.argv[2]
#linux上的目录路径
key_path = '私钥路径'
password = '密码'
ssh = paramiko.SSHClient() # 创建SSH对象
private_key = paramiko.RSAKey.from_private_key_file(key_path) # 指定私钥
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 允许连接不在know_hosts文件中的主机
transport = paramiko.Transport(('ip', 端口号))
transport.connect(username='root', pkey=private_key) # 连接服务器
def upload():
  sftp = paramiko.SFTPClient.from_transport(transport)
  try:
    sftp.put(src_file, dsc_path + '/' + src_file)
    print('上传成功')
  except Exception as e:
    print(e)
  ssh.close()
def unzip():
  ssh._transport = transport
  stdin, stdout, stderr = ssh.exec_command('cd ' + dsc_path + '&&' + 'unzip -o ' + src_file)
  result = stdout.read().decode()
  if result.strip() != '':
    print('解压成功')
  else:
    print('Error message ' + stderr.read().decode())
  ssh.close()
if __name__ == '__main__':
  upload()
  unzip()

可以分别通过Pycharm或者cmd来测试脚本运行,下面是用pycharm测试,把apps.zip文件上传到Linux服务器的/tmp目录下,并且解压

python upload_file.py apps.zip /tmp
 上传成功
 解压成功

然后登陆到Linux服务器的/tmp目录查看是否有压缩文件并且解压

python实现上传文件到linux指定目录的方法 

总结 :这只是一个简单上传解压功能,请多多指教。

总结

以上所述是小编给大家介绍的python实现上传文件到linux指定目录的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python快速排序代码实例
Nov 21 Python
Python实现的几个常用排序算法实例
Jun 16 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
Jan 10 Python
python 获取字符串MD5值方法
May 29 Python
python判断完全平方数的方法
Nov 13 Python
关于pycharm中pip版本10.0无法使用的解决办法
Oct 10 Python
pytorch标签转onehot形式实例
Jan 02 Python
Python 定义只读属性的实现方式
Mar 05 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
基于PyQT5制作一个桌面摸鱼工具
Feb 15 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 #Python
django商品分类及商品数据建模实例详解
Jan 03 #Python
PyTorch和Keras计算模型参数的例子
Jan 02 #Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 #Python
PyTorch中topk函数的用法详解
Jan 02 #Python
Pytorch训练过程出现nan的解决方式
Jan 02 #Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
Jan 02 #Python
You might like
PHP数据缓存技术
2007/02/14 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
培养自己的php编码规范
2015/09/28 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
2015/12/24 PHP
PHP中cookie知识点学习
2018/05/06 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
JS常用算法实现代码
2016/11/14 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
Vue2.0 实现单选互斥的方法
2018/04/13 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
2018/09/07 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
JS事件循环机制event loop宏任务微任务原理解析
2020/08/04 Javascript
实用的 vue tags 创建缓存导航的过程实现
2020/12/03 Vue.js
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
Python利用splinter实现浏览器自动化操作方法
2018/05/11 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
Html5实现移动端、PC端 刮刮卡效果
2016/06/30 HTML / CSS
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
舞蹈专业求职信
2014/06/13 职场文书
单位接收函范文
2015/01/30 职场文书
千与千寻观后感
2015/06/04 职场文书
创业计划书之农家乐
2019/10/09 职场文书