Colorful Life2010

Tag: python | 记录数: 22
新年新版新新向荣
Weather:-8~-1度,阳光明媚适合飞行

过年了,昨天开始放的假。

2009年是经济危机中平凡的一年,但在这一年,我学到了很多东西,也认识了很多值得认识的朋友。 虽然经历了两个月的某国内企业领导的折磨,我仍然觉得这一年我没有虚度,过了这一年,我正式的步入了而立的时代。工作中得到了领导 的很多支持和帮助,在此特别感谢,无论他会不会看到这篇博。也感谢同事们的关心,有你们同在的时光很快乐,以后也会继续快乐...

在 2009这一年,经历了多年挣扎和各种后悔之后,我和小T有了自己正式的小窝,这要感谢小T忙前忙后的辛苦,真的很感谢,因为那段时间刚好在IBM而没那 么自由,前前后后很多事都要拜托小T自己去跑。还要感谢小T在自己的大厨房里做出各种和样的甜点,虽然我现在已经吃得有些对甜食有心理抵触了,但每每小T 同学有新的作品出来,我还是忍不住要吃下几口,把那种幸福融化在心里面...

Python中字典操作的常用方法
Weather:13~23度,西南风4~5级,晴

  当然说字典,那也就有一些常用方法

------------------------清除------------------------
clear()方法,将字典所有内容清除:
>>> d = {'age' : 12, 'name' : 'bob'}
>>> d
{'age': 12, 'name': 'bob'}
>>> d.clear()
>>> d
{}

有人可能会问为什么不直接d={}?
看下面的例子:
>>> d = {'age' : 12, 'name' : 'bob'}
>>> x = d
>>> d = {}
>>> x
{'age': 12, 'name': 'bob'}.....

Python 处理 Excel
Weather:12~20度,多云

 使用Python对Excel进行操作,然后把结果生成一个新的Excel表格,使用到了xlrdpyExcelerator两个库。

 

简单的介绍一下这两个库,先说xlrd,这个库读Excel比较方便,各种方法使用起来也挺方便:

bk = xlrd.open_workbook('your.xls')
sh = bk.sheets()[-1]
上面两句就可以打开Excel表格中的一个sheet,sheets得到的是一个list,存放所有的sheet。
sh.nrows是该sheet中的行数,知道这个后就可以使用for循环来读所有的单元格了:
sh.row(i)[3]这个就代表第i行的第4列。

再看看pyExcelerator,这个用起来有点别扭:

sheets = parse_xls('result.xls')
先打开一个表格,sheets是一个list,包含了所有表格的内容,每一项就是一个sheet,而每个sheet是二元tuple,第一个是该sheet的名字,第二个是一个dict,dict的key是一个二元组,表示单元格的坐标,如(0,0),第一行第一列。
从上面的分析中可以得出要访问Excel中第一个sheet的第一行第一列元素需要:
sheets[0][1][(0,0)]
pyExcelerator也不能得到行列数。

写文件也比较简单:
wb = Workbook()
ws = wb.add_sheet('result')
ws.write(0,0,“hello”)
wb.save('result.xls')
 

写文件时需要注意直接写Unicode内容进去,而不要写编码过的内容。

转载于:可可熊的窝

Python实现IP地址与数值之间互转
Weather:短袖终于可以穿了

   自己写方法:

 def ip2num(ip):
i = 0
result = 0
for num in ip.split("."):
result += int(num)<<((3-i)*8)
i+=1
return result 

def num2ip(num):
li = []
num1 = num>>24
li.append(str(num1))
num2 = ((num>>16)-(num1<<8))
li.append(str(num2))
num3 = ((num>>8)-(num1<<16)-(num2<<8))
li.append(str(num3))
num4 = (num-(num1<<24)-(num2<<16)-(num3<<8))
li.append(str(num4))
return ".".join(li)

其实PY已经有相应的模块了

>>> import socket
>>> import struct
>>> socket.ntohl(struct.unpack('i',socket.inet_aton('192.168.101.2'))[0])
3232261378L
>>> socket.inet_ntoa(struct.pack('i',socket.htonl(3232261378L)))
'192.168.101.2'

Python中的正则表达式入门(1)
Weather:阴天,樱花和玉兰花开了
  • ^ 匹配字符串的开始。
  • $ 匹配字符串的结尾。
  • \b 匹配一个单词的边界。
  • \d 匹配任意数字。
  • \D 匹配任意非数字字符。
  • x? 匹配一个可选的x字符(换句话说,它匹配1次或者0次x 字符)。
  • x* 匹配0次或者多次x字符。
  • x+匹配1次或者多次x字符。
  • x{n,m} 匹配x字符,至少n次,至多m次。
  • (a|b|c)要么匹配a,要么匹配b,要么匹配c
  • (x) 一般情况下表示一个记忆组(remembered group). 你可以利用re.search函数返回对象的groups()函数获取它的值。