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的time模块中的常用方法整理
Jun 18 Python
Python random模块用法解析及简单示例
Dec 18 Python
Python随机函数random()使用方法小结
Apr 29 Python
Python堆排序原理与实现方法详解
May 11 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
Python Series从0开始索引的方法
Nov 06 Python
Python实现的删除重复文件或图片功能示例【去重】
Apr 23 Python
python 将字符串中的数字相加求和的实现
Jul 18 Python
使用K.function()调试keras操作
Jun 17 Python
pytorch实现查看当前学习率
Jun 24 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
Pytorch 统计模型参数量的操作 param.numel()
May 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在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
PHP简单系统数据添加以及数据删除模块源文件下载
2008/06/07 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
php数组随机排序实现方法
2015/06/13 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
原始XMLHttpRequest方法详情回顾
2013/11/28 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
JS面向对象编程基础篇(二) 封装操作实例详解
2020/03/03 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
python实现定时播放mp3
2015/03/29 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
基于Python中的yield表达式介绍
2019/11/19 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
python识别验证码的思路及解决方案
2020/09/13 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
法学专业毕业生自荐信范文
2013/12/18 职场文书
半年思想汇报
2013/12/30 职场文书
班主任工作经验材料
2014/02/02 职场文书
大学校园活动策划书
2014/02/04 职场文书
厉行勤俭节约倡议书
2014/05/16 职场文书
2014卖家双十一活动策划书
2014/09/29 职场文书
公司借款担保书
2015/09/22 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
python lambda 表达式形式分析
2022/04/03 Python