Chinaunix首页 | 论坛 | 博客
  • 博客访问: 519809
  • 博文数量: 260
  • 博客积分: 10435
  • 博客等级: 上将
  • 技术积分: 1939
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 14:50
文章分类

全部博文(260)

文章存档

2011年(22)

2010年(209)

2009年(29)

我的朋友

分类: 系统运维

2011-02-19 10:25:34

download mysql-python

 
apt-get install libmysqlclient-dev
sudo apt-get install python2.5-dev
python setup.py build
python setup.py instal

eclipse pydev




sudo apt-get install python-qt3
python setup.py install
python kodos.py

~chili/CSS/pythonForJavaProgrammers.htm

HTMLParser是python用来解析html的模块。它可以分析出html里面的标签、数据等等,是一种处理html的简便途径。 HTMLParser采用的是一种事件驱动的模式,当HTMLParser找到一个特定的标记时,它会去调用一个用户定义的函数,以此来通知程序处理。它 主要的用户回调函数的命名都是以handler_开头的,都是HTMLParser的成员函数。当我们使用时,就从HTMLParser派生出新的类,然 后重新定义这几个以handler_开头的函数即可。这几个函数包括:
handle_startendtag  处理开始标签和结束标签
handle_starttag     处理开始标签,比如
handle_endtag       处理结束标签,比如

handle_charref      处理特殊字符串,就是以&#开头的,一般是内码表示的字符
handle_entityref    处理一些特殊字符,以&开头的,比如  
handle_data         处理数据,就是data中间的那些数据
handle_comment      处理注释
handle_decl         处理handle_pi           处理形如的东西
    这里我以从网页中获取到url为例,介绍一下。要想获取到url,肯定是要分析标签,然后取到它的href属性的值。下面是代码:





字符串中字符大小写的变换:

* S.lower()   #小写
* S.upper()   #大写
* S.swapcase()   #大小写互换
* S.capitalize()   #首字母大写
* String.capwords(S)
#这是模块中的方法。它把S用split()函数分开,然后用capitalize()把首字母变成大写,最后用join()合并到一起
* S.title()    #只有首字母大写,其余为小写,模块中没有这个方法

字符串在输出时的对齐:

* S.ljust(width,[fillchar])
#输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
* S.rjust(width,[fillchar])    #右对齐
* S.center(width, [fillchar])    #中间对齐
* S.zfill(width)   #把S变成width长,并在右对齐,不足部分用0补足

字符串中的搜索和替换:

* S.find(substr, [start, [end]])
#返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索
* S.index(substr, [start, [end]])
#与find()相同,只是在S中没有substr时,会返回一个运行时错误
* S.rfind(substr, [start, [end]])
#返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
* S.rindex(substr, [start, [end]])
* S.count(substr, [start, [end]])    #计算substr在S中出现的次数
* S.replace(oldstr, newstr, [count])
#把S中的oldstar替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换
* S.strip([chars])
#把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None
* S.lstrip([chars])
* S.rstrip([chars])
* S.expandtabs([tabsize])
#把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个

字符串的分割和组合:

* S.split([sep, [maxsplit]])
#以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符
* S.rsplit([sep, [maxsplit]])
* S.splitlines([keepends])
#把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
* S.join(seq) #把seq代表的序列──字符串序列,用S连接起来

字符串的mapping,这一功能包含两个函数:

* String.maketrans(from, to)
#返回一个256个字符组成的翻译表,其中from中的字符被一一对应地转换成to,所以from和to必须是等长的。
* S.translate(table[,deletechars])
#使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉。需要注意的是,如果S为unicode字符串,那么就不支持 deletechars参数,可以使用把某个字符翻译为None的方式实现相同的功能。此外还可以使用codecs模块的功能来创建更加功能强大的翻译 表。

字符串还有一对编码和解码的函数:

* S.encode([encoding,[errors]])
#其中encoding可以有多种值,比如gb2312 gbk gb18030 bz2 zlib big5 bzse64等都支持。errors默认值为”strict”,意思是UnicodeError。可能的值还有’ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 和所有的通过codecs.register_error注册的值。这一部分内容涉及codecs模块,不是特明白
* S.decode([encoding,[errors]])

字符串的测试函数,这一类函数在string模块中没有,这些函数返回的都是bool值:

* S.startwith(prefix[,start[,end]])
#是否以prefix开头
* S.endwith(suffix[,start[,end]])
#以suffix结尾
* S.isalnum()
#是否全是字母和数字,并至少有一个字符
* S.isalpha() #是否全是字母,并至少有一个字符
* S.isdigit() #是否全是数字,并至少有一个字符
* S.isspace() #是否全是空白字符,并至少有一个字符
* S.islower() #S中的字母是否全是小写
* S.isupper() #S中的字母是否便是大写
* S.istitle() #S是否是首字母大写的

字符串类型转换函数,这几个函数只在string模块中有:

* string.atoi(s[,base])
#base默认为10,如果为0,那么s就可以是012或0×23这种形式的字符串,如果是16那么s就只能是0×23或0X12这种形式的字符串
* string.atol(s[,base]) #转成long
* string.atof(s[,base]) #转成float

1.python字符串通常有单引号(’…’)、双引号(”…”)、三引号(”"”…”"”)或(”’…”’)包围,三引 号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,但双引号和三引号(”"”…”"”)中可以包含单引号,三引号 (”’…”’)可以包含双引号,而不需要转义。
2.用(\)对特殊字符转义,如(\)、(’)、(”)。
3.常用字符串内置函数
1)str.count()  //返回该字符串中某个子串出现的次数
2)str.find()   //返回某个子串出现在该字符串的起始位置
3)str.lower()  //将该字符串全部转化为小写
4)str.upper()  //转为大写
5)str.split()  //分割字符串,返回字串串列表,默认以空格分割
6)len(str)     //返回字符串长度
例如:
>>> str = ‘Hello, world’
>>> str.count(‘o’)
>>> 2
>>> str.find(‘lo’)
>>> 3
>>> str.lower()
>>> ‘hello, world’
>>> str.upper()
>>> ‘HELLO, WORLD’
>>> str.split()
>>> ['Hello,', 'world']
>>> str.split(‘,’)
>>> ['Hello', ' world']
>>> len(str)
>>> 13
>>> str
>>> ‘Hello, world’
以上所有操作都不会改变字符串本身!
4.正则表达式,re模块
import re
常用函数:
1)compile():   //将正则表达式字符串编译成正则re对象
2)search()     //在目标字符串中匹配正则表达式
3)match()      //从目标字符串第一个字符开始匹配正则表达
search和match匹配成功返回MatchObject对象,失败返回None
>>> p = re.compile(‘abc’)
>>> p.search(‘zabcy’)
<_sre.SRE_Match object at 0×2a95659030>
不先编译成正则re对象也是可以的,上例也可以为:
>>> re.search(‘abc’,'xabcy’)
<_sre.SRE_Match object at 0×2a95659098>
compile还可加些标志位,例如:re.I(re.IGNORECASE)忽略大小写
>>> p = re.compile(‘abc’)
>>> print p.search(‘xAbCy’)
None
>>> p = re.compile(‘abc’,re.I)
>>> print p.search(‘xAbCy’)
<_sre.SRE_Match object at 0×2a9565a098>
search和match区别见下例:
>>> p = re.compile(‘abc’)
>>> print p.search(‘xxxabcyyy’)
<_sre.SRE_Match object at 0×2a95659030>
>>> print p.match(‘xxxabcyyy’)
None
>>> print p.match(‘abcyyy’)
<_sre.SRE_Match object at 0×2a95659098>
4)split()      //类似字符串内置函数split()
区别在于:内置split()以确定字符串分割,而正则split函数以正则表达式分割字
例如:以空格(1个或者多个空格)分割:

>>> p.split(‘a b   c  d’)
['a', 'b', 'c', 'd']

而内置split分割的结果为:

>>> ‘a b   c  d’.split(‘ ‘)
['a', 'b', '', '', 'c', '', 'd']

5)findall()     //返回目标字符串中匹配正则表达式中所有子串列表
>>> p = re.compile(‘^([a-z]{2}):([1-9]{3}):(.+)$’)
>>> p.findall(‘as:123:a12′)
[('as', '123', 'a12')]

上例中正则表达式的子串为3个用括弧括起的,分别为:’[a-z]{2}’、’[1-9]{3}’、’.+’, 分别被as、123、a12匹配,注意此返回的是匹配字符串元组的一维列表。

以上比较常用的正则函数,更多用法请参照python手册。
5.字符串与数字相互转换,string模块
import string
string.atoi(str[,base])  //base为可选参数,表示将字符转换成的进制类型
数字转换成字符串可简单了,直接用str()
6.字符与ASCII转换
char->ascii ord()
ascii->char  chr()


%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97#match.28.29_vs_search.28.29

阅读(1256) | 评论(0) | 转发(0) |
0

上一篇:python study

下一篇:eclipse plugin catlovemouse

给主人留下些什么吧!~~