摘要:#!/usr/bin/env python#encoding: utf8##import threadingfrom time import ctimeimport timeclass MyThread(threading.Thread): def __init__(self, func, args, name=''): threading.Thread.__init__(self) self.name = name self.func = func self.args = args def run(self): ...
阅读全文
摘要:创建一个“队列”对象import Queuemyqueue = Queue.Queue(maxsize = 10)Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。将一个值放入队列中myqueue.put(10)调用队列对象的put()方法在队尾插入一个项目。put()有两个参数,第一个item为必需的,为插入项目的值;第二个block为可选参数,默认为1。如果队列当前为空且block为1,put()方法就使调用线程暂停,直到空出一个数据单元。如果block为0
阅读全文
摘要:import sqlite3 def sqlite_basic(): # Connect to db conn = sqlite3.connect('test.db') # create cursor c = conn.cursor() # Create table c.execute(''' create table if not exists stocks (date text, trans text, symbol text, qty real, price real) ...
阅读全文
摘要:伯乐人才网6月9日发表了《写给即将入行的程序员的一封信》,翻译自《An open letter to those who want to start programming》,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的文章。因为他也是喜欢编程和技术的家伙,于是,我让他把他的一些学习Python和Web编程的一些点滴总结一下。于是他给我发来了一些他的心得和经历,我在把他的心得做了不多的增改,并根据我的经历增加了“进阶”一节。这是一篇由新手和我这个老家伙根据我们的经历完成的文章。 我的这个朋友把这篇文章取名叫Build Your ProgrammingT.
阅读全文
摘要:vim 是一个具有很多命令的功能非常强大的编辑器。限于篇幅,在本教程当中 就不详细介绍了。本教程的设计目标是讲述一些必要的基本命令,而掌握好这 些命令,您就能够很容易将vim当作一个通用的万能编辑器来使用了。 完成本教程的内容大约需要25-30分钟,取决于您训练的时间。 每一节的命令操作将会更改本文。推荐您复制本文的一个副本,然后在副本上 进行训练(如果您是通过"vimtutor"来启动教程的,那么本文就已经是副本了)。 切记一点∶本教程的设计思路是在使用中进行学习的。也就是说,您需要通过 执行命令来学习它们本身的正确用法。如果您只是阅读而不操作,那么您可能 会很快遗忘这些
阅读全文
摘要:os.path.abspath(path) #返回绝对路径os.path.basename(path) #返回文件名os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。os.path.dirname(path) #返回文件路径os.path.exists(path) #路径存在则返回True,路径损坏返回Falseos.path.lexists #路径存在则返回True,路径损坏也返回Trueos.path.expanduser(path) #把path中包含的"~"和"~user"转换成用户
阅读全文
摘要:shell 与 export命令用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,脚本shell将终止,返回到执行该脚本之前的shell。从这种意义上来说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。在子shell中定义的变量只在该子shell内有效。如果在一个she
阅读全文
摘要:source命令:source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。用法:source filename 或 . filenamesource命令除了上述的用途之外,还有一个另外一个用途。在对编译系统核心时常常需要输入一长串的命令,如:make mrpropermake menuconfigmake depmake cleanmake bzImage…………如果把这些命令做成一个文件,让它自动顺序执行,对于需要多次反复编译系统核心的用户来说会很方便,而用source命令就可以做到这一点,它的作 用就
阅读全文
摘要:在命令行状态下单纯执行 $ cd `dirname $0` 是毫无意义的。因为他返回当前路径的"."。 这个命令写在脚本文件里才有作用,他返回这个脚本文件放置的目录,并可以根据这个目录来定位所要运行程序的相对位置(绝对位置除外)。 在/home/admin/test/下新建test.sh内容如下:cd `dirname $0`echo `pwd` 然后返回到/home/admin/执行sh test/test.sh 运行结果:/home/admin/test 这样就可以知道一些和脚本一起部署的文件的位置了,只要知道相对位置就可以根据这个目录来定位,而可以不用关心绝对位置。这
阅读全文
摘要:在某些场合,可能我们需要在脚本中生成一个临时文件,然后把该文件作为最终文件放入目录中。一、cat和EOFcat命令是linux下的一个文本输出命令,通常是用于观看某个文件的内容的;EOF是“end of file”,表示文本结束符。结合这两个标识,即可避免使用多行echo命令的方式,并实现多行输出的结果。二、使用看例子是最快的熟悉方法:# cat << EOF> test.sh> #!/bin/bash> #you Shell script writes here.> EOF结果:引用# cat test.sh#!/bin/bash#you Shell sc
阅读全文
摘要:用途返回一个字符串参数的基本文件名称。语法basename String [ Suffix ]描述basename 命令读取 String 参数,删除以 /(斜杠) 结尾的前缀以及任何指定的 Suffix 参数,并将剩余的基本文件名称写至标准输出。basename 命令应用以下创建基本文件名称的规则:如果 String 参数是 //(双斜杠) 或如果 String 参数包含的都是斜杠字符,则将字符串更改为单个 /(斜杠)。跳过步骤 2 到 4。从指定字符串除去任何拖尾的 / 字符。如果在 String 参数中剩余任何 / 字符,则除去字符串的前缀直到(包含)最后一个 / 字符。如果指定 Suf
阅读全文
摘要:英文原文:10 steps to becoming a better programmer 这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的 10 件事情。 1. 永远不要复制代码 不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的 同事在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是 bug,它还会使你的代码体积变得臃肿。现代的编程语言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决,而如今使用 lam...
阅读全文
摘要:在写sh脚本的时候,常常需要运行时输入一些数据。基本的$*,执行的情况,大概就是$0 $1 $2 $3…… 那么,那些系统命令里的参数又是怎么做出来的呢?我们自己的脚本如何搞出来$0-$1的效果呢?这就是getopts的作用了。举例如下:#!/bin/bashecho "OPTIND starts at $OPTIND"while getopts ":pq:" optnamedo case "$optname" in "p") echo "Option $optname is specified"
阅读全文
摘要:1)调用系统命令调用SHELL命令nslookup,将执行的结果保存到变量result_nslook中import oscmd='nslookup %s' % hostnamehandle=os.popen(cmd , 'r')result_nslook=handle.read() 调用shell命令但是不需要获取返回结果import oscmd='ls'os.system(cmd) 2)Python 的字符串处理去掉前后空格input = open('hostlist_ip' , 'r')for hostname
阅读全文
摘要:1。生成随机数 import random #这个是注释,引入模块 rnd = random.randint(1,500)#生成1-500之间的随机数 2。读文件 f = open("c:\\1.txt","r") lines = f.readlines()#读取全部内容 for line in lines print line 3。 写文件 f = open("c:\\1.txt","r+")#可读可写模式 f.write("123...
阅读全文
摘要:mysql-python的连接时,默认大家会写成con=MySQLdb.connect(user='xxx',passwd='xxx',host='xxx',port=6600,charset='gbk')一旦指定了"gbk",默认mysql-python会设定use_unicode=True。结果是mysql-python会利用python自己的 codec模块去做字符解码工作,但实际中发现mysql库gbk编码字符集比python的gbk编码集大。一些在mysql里可以存储的字符,拿 python的code
阅读全文
摘要:在工作中需要将ip地址从整数(如168442432)到以点号分隔的字符串类型(如10.10.58.64)之间的转换,或者反过来从字符串到整数的转 换。这个转换可以使用的方式很多,例如,linux下的C语言编程,调用inet_aton等函数就可以方便的实现(参考man inet_aton)。不过,脚本语言可以提供更加快速的方式实现,在python中,如下:首先: import socket import struct字符串到整数的转换: socket.ntohl(struct.unpack('i',socket.inet_aton("10.10.58.64")
阅读全文
摘要:首先,什么是函数修饰符?函数修饰符就是对原有函数做一层包装。比如有以下两个函数: 复制代码def func1(): print 'I am function func1' def func2(): print 'I am function func2' 现在我们想为这两个函数增加一段共同的操作,这时就可以使用函数修饰符。首先我们定义一个修饰函数,先不做任何处理,仅仅打印一条横线: 复制代码def de( f ) def call_(): print '-------------------------------' return f() retu
阅读全文
摘要:python中有专门的log模块来写日志,如下所示:def initlog():import logginglogger = logging.getLogger() # 生成一个日志对象logfile = 'test.log' # logfile是一个全局变量,它就是一个文件名,如:'crawl.log'hdlr = logging.FileHandler('sendlog.txt') # 生成一个Handler。logging支持许多Handler,象FileHandler, SocketHandler, SMTPHandler等,我由于要写文
阅读全文
摘要:python的正则表达式 re本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮。正则表达式使用反斜杆(\)来转义特殊字符,使其可以匹配字符本身,而不是指定其他特殊的含义。这可能会和python字面意义上的字符串转义相冲突,这也许有些令人费解。比如,要匹配一个反斜杆本身,你也许要用'\\\\'来做为正则表达式的字符串,因为正则表达式要是\\,而字符串里,每个反斜杆都要写成\\。你也可以在字符串前加上 r 这个前缀来避免部分疑惑,因为 r 开头的python
阅读全文
摘要:Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果b > a,则生成的随机数n: a <= n <= b。如果 a >b, 则 b <= n <= a。print random.uniform(10,2
阅读全文