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操作mongodb根据_id查询数据的实现方法
May 20 Python
Python中%r和%s的详解及区别
Mar 16 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python中shapefile转换geojson的示例
Jan 03 Python
python使用requests模块实现爬取电影天堂最新电影信息
Apr 03 Python
python 获取等间隔的数组实例
Jul 04 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
Python使用docx模块实现刷题功能代码
Feb 13 Python
Python小白学习爬虫常用请求报头
Jun 03 Python
python+opencv实现车道线检测
Feb 19 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 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超级全局变量
2010/01/26 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
PHP写的加密函数,支持私人密钥(详细介绍)
2013/06/09 PHP
php汉字转拼音的示例
2014/02/27 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
js与C#进行时间戳转换
2014/11/14 Javascript
vue2的todolist入门小项目的详细解析
2017/05/11 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
Material(包括Material Icon)在Angular2中的使用详解
2018/02/11 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
解决vue单页面修改样式无法覆盖问题
2019/08/05 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
Python检测QQ在线状态的方法
2015/05/09 Python
python脚本监控docker容器
2016/04/27 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
python多任务及返回值的处理方法
2019/01/22 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
面向对象概念面试题(.NET)
2016/11/04 面试题
一年级数学教学反思
2014/02/01 职场文书
服务标语口号
2014/07/01 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
家长通知书家长意见
2014/12/30 职场文书
亲属关系公证书样本
2015/01/23 职场文书
诉讼和解协议书
2016/03/23 职场文书
2016年小学圣诞节活动总结
2016/03/31 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
python分分钟绘制精美地图海报
2022/02/15 Python