老男孩python8期观后感

前言

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

我们开始吧

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

载到共享

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

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

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

  • 1 登陆要拷贝的服务器
  • 2 传送刚打好的apk
  • 3 结束退出返回拷贝上去的文件夹
# -*- 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](http://upload-images.jianshu.io/upload_images/1744941-fc741f67af815138.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
以上讲了两个实战的例子,一个是把本地的文件上传到共享的服务器上另一个是开启三个线程互不干扰的同时执行各自的事情,然而最能引起读者兴趣的除了代码,更应该是思想,下面我便不再贴代码而是与读者一起讨论一下让自己生活工作方便的代码思想

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

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

  • 1 为什么需要另一台电脑,因为本机同时打包的数量多了就会迟钝,我们先假设为五个打包线程同时存在的话再打下一个包的话就会出包缓慢,那么第六个线程就需要分配给另一台电脑打包
  • 2 怎么同时保证两边的打包环境是一致的呢,最好是用来额外分配任务的那台电脑作为git,然后每次修改打包模板一致在一开始分配任务的烟灰缸上进行,需要分配任务的时候则git update最新的模板,然后进行打包。当然如果觉得git不好用的话可以写个脚本,直接把整个模板全新的替换到额外分配任务的电脑
  • 3 计算分配任务的电脑硬盘写入写出占用率和cpu使用率,一旦莫一方面达到警戒点则分级警报,由此来确定最多分配多少任务出去
    以上便是一个简单的分布式布置,当然老男孩还教我很多python的语法,买一送一,比如我最欠缺的javascript和html这些在做django中非常有用。


    pack.png

    在此贴上一张django做的简单的打包系统,python很方便,关键是你希望有多少事情都让电脑一键轻松解决

if (这件事将来会重复):
    不如现在写个一键完成的脚本省去我这些工作

001.png

Creater BBus.YouChangwei
我叫雷轰-支付宝changwei821@126.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,136评论 11 349
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,490评论 18 139
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,421评论 6 428
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,666评论 0 5
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,340评论 0 3