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装饰器与递归算法详解
Feb 18 Python
pandas修改DataFrame列名的方法
Apr 08 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 Python
python中int与str互转方法
Jul 02 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
关于tf.nn.dynamic_rnn返回值详解
Jan 20 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
Python selenium自动化测试模型图解
Apr 15 Python
python实现飞船游戏的纵向移动
Apr 24 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 Python
Python基础之Socket通信原理
Apr 22 Python
Python可视化神器pyecharts绘制水球图
Jul 07 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获取网络上文件
2006/10/09 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
javascript alert乱码的解决方法
2013/11/05 Javascript
对table和ul实现js分页示例分享
2014/02/24 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
es6 filter() 数组过滤方法总结
2019/04/03 Javascript
Vue基于vuex、axios拦截器实现loading效果及axios的安装配置
2019/04/26 Javascript
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
python编程培训 python培训靠谱吗
2018/01/17 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
详解python多线程之间的同步(一)
2019/04/03 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
如何基于python实现不邻接植花
2020/05/01 Python
如何卸载python插件
2020/07/08 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
Nicole Miller官方网站:纽约女装品牌
2019/09/14 全球购物
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
社会实践评语
2014/04/28 职场文书
《悯农》教学反思
2014/04/28 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript
Typescript类型系统FLOW静态检查基本规范
2022/05/25 Javascript