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使用any判断一个对象是否为空的方法
Nov 19 Python
分享python数据统计的一些小技巧
Jul 21 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
python 获取字符串MD5值方法
May 29 Python
Python用于学习重要算法的模块pygorithm实例浅析
Aug 16 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
Python基于数列实现购物车程序过程详解
Jun 09 Python
Python下载网易云歌单歌曲的示例代码
Aug 12 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 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
PHP加速 eAccelerator配置和使用指南
2009/06/05 PHP
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
理解Javascript_03_javascript全局观
2010/10/11 Javascript
jquery日历控件实现方法分享
2014/03/07 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
Javascript基于AJAX回调函数传递参数实例分析
2015/12/15 Javascript
javascript的BOM
2016/05/03 Javascript
深入理解jquery自定义动画animate()
2016/05/24 Javascript
JS实现按钮添加背景音乐示例代码
2017/10/17 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
Flask框架WTForm表单用法示例
2018/07/20 Python
python实现ssh及sftp功能(实例代码)
2020/03/16 Python
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
2014年商场国庆节活动策划方案
2014/09/16 职场文书
审计局班子四风对照检查材料思想汇报
2014/10/07 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
宪法宣传标语100条
2019/10/15 职场文书
导游词之四川武侯祠
2019/10/21 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
《现实主义勇者的王国再建记》第三弹OST全曲试听片段公开
2022/04/04 日漫
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL