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多重继承实例
Oct 11 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
基于Python实现对PDF文件的OCR识别
Aug 05 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python可变参数用法实例分析
Apr 02 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
python使用json序列化datetime类型实例解析
Feb 11 Python
Python3.5 + sklearn利用SVM自动识别字母验证码方法示例
May 10 Python
python 默认参数相关知识详解
Sep 18 Python
python全局变量引用与修改过程解析
Jan 07 Python
pytorch 计算Parameter和FLOP的操作
Mar 04 Python
Python中request的基本使用解决乱码问题
Apr 12 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连接Oracle数据库
2006/10/09 PHP
PHP中4个加速、缓存扩展的区别和选用建议
2014/03/12 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
js设置控件的隐藏与显示的两种方法
2014/08/21 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
2016/03/29 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
解决前端跨域问题方案汇总
2016/11/20 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
python定时器使用示例分享
2014/02/16 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
Python2与Python3的区别实例分析
2019/04/11 Python
python mysql断开重连的实现方法
2019/07/26 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
听课评语大全
2014/04/30 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
意向书范本
2014/07/29 职场文书
政府个人对照检查材料思想汇报
2014/10/08 职场文书
2014年学生工作总结
2014/11/20 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android