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字典序问题实例
Sep 26 Python
Linux下使用python自动修改本机网关代码分享
May 21 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 Python
详解Python函数可变参数定义及其参数传递方式
Aug 02 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
python使用folium库绘制地图点击框
Sep 21 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
Django工程的分层结构详解
Jul 18 Python
Python 格式化打印json数据方法(展开状态)
Feb 27 Python
python高级特性简介
Aug 13 Python
Python collections.deque双边队列原理详解
Oct 05 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 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
图书管理程序(一)
2006/10/09 PHP
php多文件上传实现代码
2014/02/20 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
PHP中soap的用法实例
2014/10/24 PHP
PHP中使用imagick实现把PDF转成图片
2015/01/26 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
jQuery 开发之EasyUI 添加数据的实例
2017/09/26 jQuery
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
了解重排与重绘
2019/05/29 Javascript
python 获取网页编码方式实现代码
2017/03/11 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
利用Vscode进行Python开发环境配置的步骤
2020/06/22 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
2020/09/16 Python
scrapy中如何设置应用cookies的方法(3种)
2020/09/22 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
花卉与景观设计系大学生求职信
2013/10/01 职场文书
给朋友的道歉短信
2015/05/12 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
解决pytorch 损失函数中输入输出不匹配的问题
2021/06/05 Python