老男孩python8期观后感

2016-09-26  本文已影响1390人  babybus_break

前言

老男孩的python8期呢有十一天的内容,按照一天实际讲课量6小时算呢,那么这样算来就算你不吃不眠也要三天连续看才能看完,我一篇博客怎么能介绍的完呢,这里呢我就不介绍太具体的内容,而是抛砖引玉的讲一些思想,读者如果觉得这些思想对于自己是有用的呢,可以借鉴,也可以快速定位到老男孩的视频找到类似的例子
svn://10.1.1.11/babybus-lua/video/python8期 老男孩
这里放上一个视频的地址

我们开始吧

基本上呢教学视频前面几章都需要照顾没学过的这门知识的人一点,所以老男孩的前面五章也都是介绍python的一些基本知识,这些知识你去市面上找各种python的书籍也基本都能涉及,不过呢看好的视频学知识的速度确实是要比看书快些,对于想要快速上手python的人来说只要看了前面五天的内容也基本上可以稍微说自己也是会写python的了,不过呢python作为一个大部分人眼中的自动化工具,懂得语法固然是基本但是呢,其思想才是我要重点介绍的,也就是我接下来要说的内容!

载到共享

第六天的内容,FTP的上传和多线程,我这里拿我们的打包系统用到的类似的例子,比如载到共享

需求描述:我刚打好一个apk包,现在要把这个包从打包机mac上拷贝到共享的服务器上

让我呢把这个需求拆分一下我们要做的事情

# -*- coding:utf-8 -*-
# 引入ftb模块
from ftplib import FTP 
from datetime import datetime
# 开始登陆共享
sourceDir = r'10.1.1.11'
ftp = FTP(sourceDir)
ftp.login('用户名','密码')
# 登陆到哈哈这个文件夹下 
tex = 'Share/temp/哈哈'
tex = tex.encode('gbk')
Tostr = (r'/DATA/')+tex
# 存放是否执行成功的信息
GiveTip = '并没有任何导出'
# 平台信息 And代表Android IOS代表ios
IsIos = 'And'
# 刚进来,那就创建目录吧 格式 包名_平台_时间/IsIos/渠道名
if (icount == 0):
mulu = log.app.name.strip()+IsIos+datetime.now().strftime("%Y_%m_%d_%H_%M_%S")
GiveTip = mulu
mulu = mulu.encode('gbk')
# 登陆到刚刚创建的目录里面
ftp.mkd(mulu)
ftp.cwd(mulu)
# myname是哈哈上的命名 myapp是本地的apk全路径
myname = os.path.basename(log.export_app.path)
myname = myname.encode('gbk')
path = os.path.join(TEMP_DIR, '..', log.export_app.path)
myapp = open(path,'rb')
ftp.storbinary('STOR '+myname,myapp)
myapp.close()
# 结束退出
ftp.quit() 
# 返回是否成功的信息
return HttpResponse(GiveTip)

接着我来稍微讲解一下多线程,假设我们现在要同时打三个Android包,算了Android打包要做的事情比较多,换个例子,有一个数组现在我要分配数组内的内容分三个线程把数组内的内容打印出来,其实把数组的内容换成打包的信息就能做到三线程打包apk了,读者可以自己试着写一下。让我们看看怎么分三线程打印一个数组的内容

# -*- coding:utf-8 -*-
import threading  
import time  
# 数组的内容就简单写一下
alltab = [1,2,3,4,5,6]
# 数组的总长度
mlen = len(alltab)
# 分成三份的三分之一地方
start = mlen/3
# 分成三份的三分之二地方
middl = 2*mlen/3
# 每个线程要分配的数组量
topack1 = alltab[0:start]
topack2 = alltab[start:middl]
topack3 = alltab[middl:mlen]
# 创建一个函数打印传入的数组
def Dumptab(mtab):
    for x in mtab:
        time.sleep(1)
        print x
# 开启三个线程 各自执行函数
t2 = threading.Thread(target=Dumptab,args=(topack2,) )
t2.start()
t1 = threading.Thread(target=Dumptab,args=(topack1,) )
t1.start()
t3 = threading.Thread(target=Dumptab,args=(topack3,) )
t3.start()

执行情况如下图
![F(@N]8@ML)32SVI89}NF6IG.png](https://img.haomeiwen.com/i1744941/fc741f67af815138.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
以上讲了两个实战的例子,一个是把本地的文件上传到共享的服务器上另一个是开启三个线程互不干扰的同时执行各自的事情,然而最能引起读者兴趣的除了代码,更应该是思想,下面我便不再贴代码而是与读者一起讨论一下让自己生活工作方便的代码思想

我们来试想自己管理很多电脑吧

分布式监控系统开发,现在我们有不止一台电脑可以搞打包了,假设啊!虽然现实生活中我只有一台。那么要怎么分配任务呢!
需求分析:

if (这件事将来会重复):
    不如现在写个一键完成的脚本省去我这些工作
001.png
Creater BBus.YouChangwei
我叫雷轰-支付宝changwei821@126.com
上一篇下一篇

猜你喜欢

热点阅读