[Python]处理windows下多级目录文件,上传到Linux服务器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[Python]处理windows下多级目录文件,上传到Linux服务器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2973字,纯文字阅读大概需要5分钟。
内容图文
# -*- coding: utf-8 -*- __author__ = ‘tsbc‘import sys reload(sys) sys.setdefaultencoding(‘utf-8‘) import paramiko import os import time class Upload(): """ 上传每天生成的测试报告到Linux的web服务器。 paramiko 包需要安装 /result/ 下存放html文件 /result/image 截图文件 """ username = "root" password = "******" hostname = "192.168.200.8" localdir = "..\\result\\" romotedir = "/opt/lampp/htdocs/result/" port = 22 #日期格式 2014-12-17 day = time.strftime(‘%Y-%m-%d‘, time.localtime(time.time())) #获取当前时间格式 2014-12-12-10_39_58 now = time.strftime(‘%Y-%m-%d-%H_%M_%S‘, time.localtime(time.time())) #定义shell创建目录命令:判断路径是否存, mkdir_day = "[ -d \"" + romotedir + day + "\" ] || mkdir " + romotedir + day + "; " mkdir_img = "[ -d \"" + romotedir + day + "/image\" ] || mkdir " + romotedir + day + "/image"# print mkdir_day# print mkdir_img""" SSH远程登录Linux主机 """#调用ssh客户端接口,进行登录 s = paramiko.SSHClient() #s.load_system_host_keys() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname=hostname, username=username, password=password) #使用Linux标准的输入、输出、报错,调用定义好的shell命令进行创建目录 stdin,stdout,stderr=s.exec_command(mkdir_day + mkdir_img) #输出命令反馈print stdout.read() #关闭连接 s.close() """ os.walk()输出为: ([路径],[目录],[文件]) (‘..\\result\\2014-12-18‘, [‘image‘], [‘2014-12-18-10_42_43_result.html‘]) (‘..\\result\\2014-12-18\\image‘, [], [‘2014-12-18-11_28_33_login.png‘, ‘2014-12-18-11_28_36_login.png‘]) """ path = localdir + day if os.path.exists(path): nested = os.walk(path) for i in nested: print i tt = i[1] #i[0] 是路径; i[1] 目录名称列表; i[2] 是文件列表if len(tt) > 0: #当tt>0时,说明是根目录(入口目录)下,tt<0时,说明当前是叶子目录print u" = +当前目录 " + str(i[0]) + u" 下的文件有:" ff = i[0].split(‘\\‘)#使用\进行路径分割 ddir = ff[len(ff)-1]#获取末尾的文件目录名称for j in i[2]: localn = localdir + ddir + "\\" + j romoten = romotedir + ddir + "/" + j print j # print localn# print romotentry: #通过主机名、端口、用户名和密码连接远程主机。 t = paramiko.Transport(hostname, port) t.connect(username=username, password=password) sftp =paramiko.SFTPClient.from_transport(t) #sftp的put表示把本地文件传送到远程机器上,get表示把远程文件传递到本地机器上。 sftp.put(localn, romoten) #关闭连接 t.close() except Exception, e: import traceback traceback.print_exc() try: t.close() except: passelif len(tt) < 1: print u" = +当前目录 " + str(i[0]) + u" 下的文件有:" ff = i[0].split(‘\\‘)#使用\进行路径分割 fdir = ff[len(ff)-1]#获取末尾的文件目录名称for j in i[2]: localn = str(i[0]) + "\\" + j #str(i[0]) == localdir + fdir romoten = "/opt/lampp/htdocs/result/" + day +"/"+ fdir + "/" + j print j # print localn# print romoten#stdin,stdout,stderr=s.exec_command("mkdir /opt/lampp/htdocs/result/"+fdir)try: t = paramiko.Transport(hostname, port) t.connect(username=username, password=password) sftp =paramiko.SFTPClient.from_transport(t) #sftp的put表示把本地文件传送到远程机器上,get表示把远程文件传递到本地机器上。 sftp.put(localn, romoten) t.close() except Exception, e: import traceback traceback.print_exc() try: t.close() except: passelse: print path+" 目录不存在,报告未能成功上传!"if__name__ == "__main__": Upload()
原文:http://www.cnblogs.com/tsbc/p/4175196.html
内容总结
以上是互联网集市为您收集整理的[Python]处理windows下多级目录文件,上传到Linux服务器全部内容,希望文章能够帮你解决[Python]处理windows下多级目录文件,上传到Linux服务器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。