介绍
这篇文章主要介绍了python如何实现上传文件到linux指定目录的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。
<强>环境:强>
1。linux操作系统一台windows 2.
环境安装Python3。x
3。Pycharm IDE环境
大家如果对paramiko模块不熟悉的话,可以去了解哈。
上传文件用到SFTPCLient, SFTPCLient作为一个sftp的客户端对象,根据ssh传输协议的sftp会话,实现远程文件操作,如上传,下载,权限,状态。
代码如下
# !/usr/bin/env python import paramiko import 系统 src_file =系统。argv [1] # windows下的源文件 dsc_path =系统。argv [2] # linux上的目录路径 时间=key_path & # 39;私钥路径& # 39; 时间=password & # 39;密码& # 39; 时间=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 ((& # 39; ip # 39;,,端口号)) transport.connect(用户名=& # 39;根# 39;,,pkey=private_key), #,连接服务器 def 上传(): 时间=sftp 才能;paramiko.SFTPClient.from_transport(运输) 尝试才能: ,,,sftp.put (src_file, dsc_path +, & # 39;/& # 39;, +, src_file) ,,,print(& # 39;上传成功& # 39;) except 才能;Exception  as e: ,,,印刷(e) ssh.close才能() def 解压缩(): ssh._transport =,才能运输 ,,stdin、stdout,, stderr =, ssh.exec_command (& # 39; cd & # 39;, +, dsc_path +, & # 39;,, & # 39;, +, & # 39; unzip -o & # 39;, +, src_file) 时间=result 才能;stdout.read () .decode () if 才能;result.strip (), !=, & # 39; & # 39;: ,,,print(& # 39;解压成功& # 39;) 其他的才能: ,,,print (& # 39; Error  message & # 39;, +, stderr.read () .decode ()) ssh.close才能() if __name__ ==, & # 39; __main__ # 39;: 上传才能() 解压才能()
可以分别通过Pycharm或者cmd来测试脚本运行,下面是用Pycharm测试,把应用程序。zip文件上传到Linux服务器的/tmp目录下,并且解压
, python upload_file.py apps.zip /tmp ,上传成功 ,解压成功
然后登陆到Linux服务器的/tmp目录查看是否有压缩文件并且解压
感谢你能够认真阅读完这篇文章,希望小编分享的“python如何实现上传文件到Linux指定目录的方法”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!