python实现上传文件到linux指定目录的方法
今天接到一个小需求,就是想在windows环境下,上传压缩文件到linux指定的目录位置并且解压出来,然后我想了一下,这个可以用python试试写下。
环境:
1.linux操作系统一台
2.windows环境安装Python3.x
3.PycharmIDE环境
大家如果对paramiko模块不熟悉的话,可以去了解哈。
上传文件用到SFTPCLient,SFTPCLient作为一个sftp的客户端对象,根据ssh传输协议的sftp会话,实现远程文件操作,如上传、下载、权限、状态。
代码如下
#!/usr/bin/envpython importparamiko importsys 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)#连接服务器 defupload(): sftp=paramiko.SFTPClient.from_transport(transport) try: sftp.put(src_file,dsc_path+'/'+src_file) print('上传成功') exceptExceptionase: print(e) ssh.close() defunzip(): ssh._transport=transport stdin,stdout,stderr=ssh.exec_command('cd'+dsc_path+'&&'+'unzip-o'+src_file) result=stdout.read().decode() ifresult.strip()!='': print('解压成功') else: print('Errormessage'+stderr.read().decode()) ssh.close() if__name__=='__main__': upload() unzip()
可以分别通过Pycharm或者cmd来测试脚本运行,下面是用pycharm测试,把apps.zip文件上传到Linux服务器的/tmp目录下,并且解压
pythonupload_file.pyapps.zip/tmp 上传成功 解压成功
然后登陆到Linux服务器的/tmp目录查看是否有压缩文件并且解压
总结:这只是一个简单上传解压功能,请多多指教。
总结
以上所述是小编给大家介绍的python实现上传文件到linux指定目录的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。