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的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
Windows下python3.6.4安装教程
Jul 31 Python
用Python shell简化开发
Aug 08 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
PyQt5使用QTimer实现电子时钟
Jul 29 Python
python多线程同步实例教程
Aug 11 Python
基于python cut和qcut的用法及区别详解
Nov 22 Python
安装PyInstaller失败问题解决
Dec 14 Python
Python timer定时器两种常用方法解析
Jan 20 Python
Python参数传递及收集机制原理解析
Jun 05 Python
python中scipy.stats产生随机数实例讲解
Feb 19 Python
Django+Celery实现定时任务的示例
Jun 23 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 采集心得技巧
2009/05/15 PHP
php读取javascript设置的cookies的代码
2010/04/12 PHP
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
单元选择合并变色示例代码
2014/05/26 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
seajs模块之间依赖的加载以及模块的执行
2016/10/21 Javascript
js实现密码强度检验
2017/01/15 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
token 机制和实现方式
2020/12/15 Javascript
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
Python实现读取目录所有文件的文件名并保存到txt文件代码
2014/11/22 Python
python实现反转部分单向链表
2018/09/27 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
德国孕妇装和婴童服装网上商店:bellybutton
2018/04/12 全球购物
送给他或她的礼物:FUN.com
2018/08/17 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
远程学习的教学用品和家庭学习资源:Really Good Stuff
2020/04/27 全球购物
Java基础知识面试题
2014/03/25 面试题
房地产营销活动策划方案
2014/09/15 职场文书
干部个人考察材料
2014/12/24 职场文书
八一建军节主持词
2015/07/01 职场文书