python实现上传文件到linux指定目录
今天接到一个小需求,就是想在windows环境下,上传压缩文件到linux指定的目录位置并且解压出来,然后我想了一下,这个可以用python试试写下。
环境:
1.linux操作系统一台
2.windows环境安装Python3.x
3.Pycharm IDE环境
大家如果对paramiko模块不熟悉的话,可以去了解哈。
上传文件用到SFTPCLient,SFTPCLient作为一个sftp的客户端对象,根据ssh传输协议的sftp会话,实现远程文件操作,如上传、下载、权限、状态。
代码如下
1 #!/usr/bin/env python
2 import paramiko
3 import sys
4
5 src_file = sys.argv[1] #windows下的源文件
6 dsc_path = sys.argv[2] #linux上的目录路径
7 key_path = '私钥路径'
8 password = '密码'
9 ssh = paramiko.SSHClient() # 创建SSH对象
10 private_key = paramiko.RSAKey.from_private_key_file(key_path) # 指定私钥
11 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 允许连接不在know_hosts文件中的主机
12 transport = paramiko.Transport(('ip', 端口号))
13 transport.connect(username='root', pkey=private_key) # 连接服务器
14
15 def upload():
16 sftp = paramiko.SFTPClient.from_transport(transport)
17 try:
18 sftp.put(src_file, dsc_path + '/' + src_file)
19 print('上传成功')
20 except Exception as e:
21 print(e)
22 ssh.close()
23
24
25 def unzip():
26 ssh._transport = transport
27 stdin, stdout, stderr = ssh.exec_command('cd ' + dsc_path + '&&' + 'unzip -o ' + src_file)
28 result = stdout.read().decode()
29 if result.strip() != '':
30 print('解压成功')
31 else:
32 print('Error message ' + stderr.read().decode())
33 ssh.close()
34
35
36 if __name__ == '__main__':
37 upload()
38 unzip()
可以分别通过Pycharm或者cmd来测试脚本运行,下面是用pycharm测试,把apps.zip文件上传到Linux服务器的/tmp目录下,并且解压
1 python upload_file.py apps.zip /tmp
2 上传成功
3 解压成功
然后登陆到Linux服务器的/tmp目录查看是否有压缩文件并且解压

总结:这只是一个简单上传解压功能,请多多指教。
python实现上传文件到linux指定目录的更多相关文章
- 使用putty上传文件到linux系统
使用window的cmd命令 上传文件到linux 使用putty下的 pscp.exe pscp -r -l root -pw 1234567890 e:/htk 192.168.0.204:/r ...
- Windows上传文件到linux 使用winscp
Windows上传文件到linux 使用winscp, winscp下载目录 https://sourceforge.net/projects/winscp/postdownload?source=d ...
- windows上传文件到 linux的hdfs
一.windows上传文件到 linux的hdfs 1.先在 centos 上开启 hdfs, 用 jps 可以看到下面信息, 说明完成开启 2.在win上配置 hadoop (https://www ...
- SpringBoot 上传文件到linux服务器 异常java.io.FileNotFoundException: /tmp/tomcat.50898……解决方案
SpringBoot 上传文件到linux服务器报错java.io.FileNotFoundException: /tmp/tomcat.50898-- 报错原因: 解决方法 java.io.IOEx ...
- SpringBoot上传文件到本服务器 目录与jar包同级问题
目录 前言 原因 实现 不要忘记 最后的封装 Follow up 前言 看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了.当你使用tomcat发布项目的时候,上传 ...
- 【Azure 应用服务】使用PowerShell脚本上传文件至App Service目录
问题描述 使用PowerShell脚本上传文件至App Service目录的示例 脚本示例 对文件进行上传,使用的 WebClient.UploadFile 方法进行上传.当文件夹中包含子目录,执行以 ...
- python requests上传文件 tornado 接收文件
requests 上传文件 import requests def images(): url = 'http://127.0.0.1:8889/upload/image' files = {'fil ...
- 使用windows桌面ftp上传文件到linux服务器
首先在linux服务器上安装ftp [root@host2 test]#yum -y install ftp vsftpd [root@host2 test]#service vsftpd start ...
- 用sftp上传文件至linux服务器
1.项目环境 框架:springmvc 项目管理工具:maven 2.必须使用的jar com.jcraft jsch 0.1.27 test 3.新建一个FileUpDown工具类,在类中添加 ...
随机推荐
- 12 将类处理为excel,再将excel处理为类(界限计划3)
中间使用map作为中间处理 将类处理为excel: 1.读取类转为map //读取btl,转为map public static Map getBtlMap(String rule, BTLDAO b ...
- 2019-2-2-VisualStudio-扩展开发-添加菜单
title author date CreateTime categories VisualStudio 扩展开发 添加菜单 lindexi 2019-02-02 15:35:18 +0800 201 ...
- include 语句中使用双引号与括号有什么区别?
Include 的语法 你在学习如何构造函数时,看到了不同的 include 语句: # include <iostream> # include "distance.h&quo ...
- oracle WHERE子句中的连接顺序
ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前, 那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾. 例如: (低效,执行时间1 ...
- Python基础之(三)----PyGame安装步骤
http://blog.csdn.net/qq_33166080/article/details/68928563 如果你已经有一定的编程经验,那么学习一门新语言最快的方式就是拿着一个比较中型的项目, ...
- Android 自定义界面的弹出框(可输入数据)
上午写了一篇博文,介绍了如何定义从屏幕底部弹出PopupWindow,写完之后,突然想起之前写过自定义内容显示的弹出框,就随手写了两个实例,分享出来: 第一种实现方式:继承Dialog 1.1 线定义 ...
- jq制作tab栏
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python--day24--复习
- Python--day26--封装和@property
---恢复内容开始--- @property:修饰过的方法不能传任何参数,把方法伪装成属性,没有这个装饰就像c1.area()这样调用,少了一个括号,没什么用. @name.setter:实现可以修改 ...
- set和map容器、
set集合容器:实现了红黑树的平衡二叉检索树的数据结构,插入元素时,它会自动调整二叉树的排列,把元素放到适当的位置,以保证每个子树根节点键值大于左子树所有节点的键值,小于右子树所有节点的键值:另外,还 ...