05 2013 档案

摘要:上节我们已经把fabric给配置好了。这节我们通过fabric编写批量执行服务器任务和自动化运维管理。先介绍下fabric的特点,这个在官方文档里面已经介绍过:1 代码可读性强,完全是python语言。2 封装了本地、远程操,内置了一些方法。3 可以根据需求灵活的定义参数。4 角色定义,方便批量管理。常用的配置参数:env.host -- 主机ip,当然也可以-H参数指定env.password -- 密码,打好通道的请无视env.roledefs -- 角色分组,比如:{'web': ['x', 'y'], 'db': [ 阅读全文
posted @ 2013-05-23 20:26 老王python 阅读(1356) 评论(0) 推荐(0) 编辑
摘要:fabric的安装可以选择用python的pip安装或者easy_install来安装。在xubuntu下,我这里用的是sudo apt-get install fabric来安装安装完以后我们进入控制台,然后improt fabric导入下模块,如果没报错,说明安装模块成功。如果你是2.5的话,那需要写个声明:from __future__ import with_statement2.6+的就不需要了。下面演示一个最简单的程序。#!/usr/bin/pythonfrom fabric.api import rundef host_os(): run('uname -s')保 阅读全文
posted @ 2013-05-23 20:25 老王python 阅读(785) 评论(0) 推荐(0) 编辑
摘要:python默认的成员函数和成员变量都是公开的,python 私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 比如:class Person: def __init__(self): self.__name = 'haha&# 阅读全文
posted @ 2013-05-23 20:24 老王python 阅读(11159) 评论(0) 推荐(0) 编辑
摘要:如果你需要自定义异常的话,可以从Exception类派生。 在这个例子中,默认的__init__()异常已被我们重写。>>> class MyError(Exception):... def __init__(self, value):... self.value = value... def __str__(self):... return repr(self.value)...>>> try:... raise MyError(2*2)... except MyError as e:... print 'My exception occurred 阅读全文
posted @ 2013-05-23 20:23 老王python 阅读(5567) 评论(0) 推荐(0) 编辑
摘要:你可以用字符串的format方法来格式化输出字符串。 比如;>>>print'We are the {0} who say "{1}!"'.format('knights','Ni')Wearetheknightswhosay"Ni!"括号内的字符(称为格式字段)被替换的对象。{}括号中的数字是指替换的位置,里面的数字,比如0,1表示替换元组的索引位置。>>>print'{0} and {1}'.format('spam','egg 阅读全文
posted @ 2013-05-11 22:48 老王python 阅读(562) 评论(0) 推荐(0) 编辑
摘要:假设你想设计一个模块集(也就是一个python包)来统一处理声音文件和声音数据。通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能需要创建和维护一个不断增长的各种文件格式之间的转换的模块集合。并且可能要执行声音数据处理(如混合,添加回声,应用平衡功能),所以你写一个永无止境的流模块来执行这些操作:模块设计的包如下:sound/ Top-levelpackage __init__.py Initializethesoundpackage formats/ Subpackageforfileformatconversion... 阅读全文
posted @ 2013-05-11 22:47 老王python 阅读(1558) 评论(0) 推荐(0) 编辑
摘要:内置的dir()函数是用来找出一个模块内置的方法。它返回一个字符串列表>>>importfibo,sys>>>dir(fibo)['__name__','fib','fib2']>>>dir(sys)['__displayhook__','__doc__','__excepthook__','__name__','__stderr__','__stdin__','__stdout__' 阅读全文
posted @ 2013-05-11 22:45 老王python 阅读(758) 评论(0) 推荐(0) 编辑
摘要:python del方法从列表中删除某个项目索引,这个和列表的pop方法不一样,pop方法则返回一个值。>>> a = [-1, 1, 66.25, 333, 333, 1234.5]>>> del a[0]>>> a[1, 66.25, 333, 333, 1234.5]>>> del a[2:4]>>> a[1, 66.25, 1234.5]>>> del a[:]>>> a[]也可用于删除整个变量: del a 阅读全文
posted @ 2013-05-04 09:53 老王python 阅读(2247) 评论(0) 推荐(0) 编辑
摘要:filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:>>> def f(x): return x % 2 != 0 and x % 3 != 0 >>> filter(f, range(2, 25)) [5, 7, 11, 13, 17, 19, 23]>>> def f(x): return x != 'a' >>> filte 阅读全文
posted @ 2013-05-04 09:52 老王python 阅读(432) 评论(0) 推荐(0) 编辑
摘要:pass语句通常什么都不做。它可以表示语句,但这个程序不需要的执行相应的动作。例如:>>> while True:... pass # Busy-wait for keyboard interrupt (Ctrl+C)...这是常用的,用于创建最小的类:>>> class MyEmptyClass:... pass...另外,你可以只定义一个方法,方法里面的内容如果暂时没想好怎么写的话,可以用pass来代替,如果你留空,程序则会报错。>>> def initlog(*args):... pass # Remember to implemen 阅读全文
posted @ 2013-05-04 09:50 老王python 阅读(5564) 评论(1) 推荐(0) 编辑
摘要:break语句,就像在C语言中,打破了最小封闭for或while循环。 而continue语句,终止这次循环,继续执行下一次迭代的循环。 for和while循环可以设置一个else子句;如果你的循环不是通过break终止的话,最后会执行else语句的内容。比如搜索素数的例子:>>>forninrange(2,10):... forxinrange(2,n):... ifn%x==0:... printn,'equals',x,'*',n/x... break... else:... # loop fell through without fin 阅读全文
posted @ 2013-05-04 09:49 老王python 阅读(787) 评论(0) 推荐(0) 编辑
摘要:如果你需要遍历一个数字序列,内置函数range()就派上用场了。>>> range(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]你可以指定切片的起始值和终值,并且可以取值的步长,并且步长还可以为负数。>>> range(5, 10)[5, 6, 7, 8, 9]>>> range(0, 10, 3)[0, 3, 6, 9]>>> range(-10, -100, -30)[-10, -40, -70]要遍历序列的指数,你可以结合范围(),len()如下:>>> a = ['M 阅读全文
posted @ 2013-05-04 09:47 老王python 阅读(801) 评论(0) 推荐(0) 编辑
摘要:除了数值,Python可以操作字符串,它可以表现在以下几个方面。包含在单引号或双引号:>>> 'spam eggs''spam eggs'>>> 'doesn\'t'"doesn't">>> "doesn't""doesn't">>> '"Yes," he said.''"Yes," he said.'>&g 阅读全文
posted @ 2013-05-04 09:46 老王python 阅读(761) 评论(0) 推荐(0) 编辑
摘要:如果你是linux系统的话。Python的解释器通常安装目录/usr/local/bin/python 在这些机器上把/usr/local/bin目录设置成你的Unix Shell的搜索路径中,使得它可以通过键入命令启动。Python安装在Windows机器上,通常是放置在C:\Python26,但你可以改变这个,当你运行安装程序。要将此目录添加到您的路径,你可以进入命令提示符在DOS框中键入以下命令:设置path =%PATH%; C:\python26在主提示符下键入文件结束符(Unix上使用Control-D,Ctrl-Z键在Windows上)导致的解释退出一个零退出状态。如果不工作,你 阅读全文
posted @ 2013-05-04 09:44 老王python 阅读(1520) 评论(0) 推荐(0) 编辑
摘要:如果你做很多在电脑上工作,最终你发现,有一些任务,你想实现自动化。例如,您可能要执行搜索和替换过大量的文本文件,或在一个复杂的方式重新命名和重新排列了一堆照片文件。也许你想编写一个小型的自定义数据库,或者一个专门的图形用户界面应用程序,或一个简单的游戏。如果你是一个专业的软件开发人员,你可能有几个C / C + + / Java库工作,但发现平时写/编译/测试/重编译周期太慢。也许你正在编写一个测试套件这样的库,并找到一个乏味的任务编写测试代码。或者,也许你已经写了一个程序,可以使用扩展语言,你不想为您的应用程序的设计和实施一种全新的语言。你可以写一个Unix shell脚本或Windows批 阅读全文
posted @ 2013-05-04 09:37 老王python 阅读(494) 评论(0) 推荐(0) 编辑
摘要:Python是一种简单易学,功能强大的编程语言。它具有高效的高层次的数据结构和面向对象编程。 Python的优雅的语法,动态类型,以及它天然的解释,使之成为一个理想的脚本语言,在大多数平台上的许多领域和快速应用程序开发上都是不错的。Python解释器和大量标准库是你可以从Python的Web站点,http://www.python.org/上下载。该站点上也包含很多免费的第三方Python模块,程序,工具,以及附加的文档的分布和指针。Python的解释器很容易地扩展新的功能和数据类型实现。你如果需要扩展工。可以在C或C + +(或其他语言从C调用)。 Python也很适于作为定制应用的扩展语言 阅读全文
posted @ 2013-05-04 09:35 老王python 阅读(295) 评论(0) 推荐(0) 编辑