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中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
Python序列循环移位的3种方法推荐
Apr 09 Python
python对excel文档去重及求和的实例
Apr 18 Python
python pandas中对Series数据进行轴向连接的实例
Jun 08 Python
Python自定义一个异常类的方法
Jun 27 Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 Python
linux下python中文乱码解决方案详解
Aug 28 Python
如何利用python读取micaps文件详解
Oct 18 Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 20 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 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
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php输出形式实例整理
2020/05/05 PHP
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
非常漂亮的js烟花效果
2020/03/10 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
零基础学Python(一)Python环境安装
2014/08/20 Python
python快速查找算法应用实例
2014/09/26 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
Python中一些深不见底的“坑”
2019/06/12 Python
基于python3抓取pinpoint应用信息入库
2020/01/08 Python
pytorch进行上采样的种类实例
2020/02/18 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
参观考察邀请函范文
2014/01/29 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
个人工作能力自我评价
2015/03/05 职场文书
python flask开发的简单基金查询工具
2021/06/02 Python
Win11使用CAD卡顿或者致命错误怎么办?Win11无法正常使用CAD的解决方法
2022/07/23 数码科技