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中LEGB和闭包及装饰器
Aug 03 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
python3.x实现base64加密和解密
Mar 28 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
python的re模块使用方法详解
Jul 26 Python
python3.6生成器yield用法实例分析
Aug 23 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
django中瀑布流写法实例代码
Oct 14 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 Python
.img/.hdr格式转.nii格式的操作
Jul 01 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中实现Javascript的escape()函数代码
2010/08/08 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
php合并js请求的例子
2013/11/01 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
jQuery的运行机制和设计理念分析
2011/04/05 Javascript
javascript数组去重3种方法的性能测试与比较
2013/03/26 Javascript
JavaScript中使用Substring删除字符串最后一个字符
2013/11/03 Javascript
常用DOM整理
2015/06/16 Javascript
Node.js操作mysql数据库增删改查
2016/03/30 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
jquery实现进度条状态展示
2020/03/26 jQuery
js String.prototype.trim字符去前后空格的扩展
2020/08/23 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
Python的Twisted框架中使用Deferred对象来管理回调函数
2016/05/25 Python
python实现多线程行情抓取工具的方法
2018/02/28 Python
Linux下python3.7.0安装教程
2018/07/30 Python
python输出决策树图形的例子
2019/08/09 Python
Django错误:TypeError at / 'bool' object is not callable解决
2019/08/16 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
Keras实现将两个模型连接到一起
2020/05/23 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
百思买美国官网:Best Buy
2016/07/28 全球购物
全球最大的在线旅游公司:Expedia
2017/11/16 全球购物
英国女性时尚鞋类的潮流制造者:Koi Footwear
2018/10/19 全球购物
亿阳信通股份有限公司笔试题(C#)
2016/03/04 面试题
促销活动总结范文
2014/04/30 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
vscode中使用npm安装babel的方法
2021/08/02 Javascript