PYTHON常用函数梳理

 

1内置模块
1.1help
功能说明:help是python中的一个帮助函数,是一个内置函数,所谓内置函数,就是在python中被自动加载的函数,任何时候都可以用,而不用使用import导入。help函数只有一个参数,如果传一个字符串做参数的话,它会自动搜索以这个字符串命名的模块,方法,等;如果传入的是一个对象,就会显示这个对象的类型的帮助。 

使用方法:
1 >>> help(’sys’) #会列出sys模块的帮助
2 >>> a = [1,2,3]
3 >>> help(a) #会显示list的帮助
4 >>> help(a.append) #会显示list的append方法的帮助


1.2callable
功能说明:检查一个对象是否是可调用的 (无论是直接调用或是通过 apply),返回True或False,主要是检查对象的属性中是否包括__call__。

使用方法:
1 >>> callable(help) #会返回help是否可用
2 True
3 >>> callable(xxx) #输入不存在的对象,返回不可用 
4 False


1.3repr
功能说明:repr函数用来取得对象的规范字符串表示。反引号“`”(也称转换符)可以完成相同的功能。

使用说明:
1 >>> i = []
2 >>> i.append('item')
3 >>> `i`
4 "['item']"
5>>> repr(i)
6"['item']"


1.4eval
功能说明:eval语句用来计算存储在字符串中的有效Python表达式,并返回执行结果

使用说明:
1 >>> eval("2*3") #计算一个python表达式
2 6


1.5exec
功能说明:exec语句用来执行储存在字符串或文件中的Python语句。exec可以执行完整的语句,而eval只能执行表达式。

使用说明:
1 >>> exec 'print "Hello World"'#执行一条python语句
2 Hello World


1.6dir
功能说明:dir函数来列出模块定义的标识符。标识符有函数、类和变量。当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。

使用说明:
1 >>> import sys #执行一条python语句
2 >>> dir(sys)   #返回sys中定义的名称列表
3 ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'hexversion', 'last_traceback', 'last_type', 'last_value', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'version', 'version_info', 'warnoptions'] 
3 >>> dir()   #返回当前模块的名称列表
4 ['__builtins__', '__doc__', '__name__']
5>>> a = 3   #增加一个参数定义
6>>> dir()
7['__builtins__', '__doc__', '__name__', 'a'] #返回当前模块的名称列表


1.7hasattr
功能说明:查看目的对象中的命名空间是否包括指定的名称,格式形如hasattr(obj,name),其中obj为目的对象,name为执行的名称。

使用说明:
1 >>> dir(id)      #查看对象id中的名称列表 
2 ['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__str__'] 
3 >>> hasattr(id, '__hash__')   #查看id对象的命名空间中是否包括__hash__
4 True


1.8getattr
功能说明:getattr用于返回目标对象的一个对象的属性,或者方法,使用格式形如getattr(obj, name[, default]),其中obj为目标对象名称,name为对应属性或方法名称,default为可选项,当default设置后将在属性不存在的时候进行返回。此功能等价于obj.name。

使用说明:
1 class A:   
2     def __init__(self):   
3        self.a = 'a'  
4     def method(self):   
5        print "method print"  
6 a = A()   
7 print getattr(a, 'a', 'default') #如果有属性a则打印a,否则打印default   
8 print getattr(a, 'b', 'default') #如果有属性b则打印b,否则打印default   
9 print getattr(a, 'method', 'default')   
10 #如果有方法method,否则打印其地址,否则打印default   
11 print getattr(a, 'method', 'default')()   
12 #如果有方法method,运行函数并打印None否则打印default  


1.9setattr
功能说明:setattr可以用于设置目标对象的指定属性,使用格式形如setattr(obj,name,value),其中obj为目标对象名称,name为对应属性或方法名称,value则是需要设定的属性值。name对应的属性可以是存在也可以是新建的。

使用说明:
1 setattr(x, 'foobar', 123) #将属性x.foobar设置成值123 
2 x.foobar = 123  #这两行代码的效果等价


1.10delattr
功能说明:delattr用来删除目标对象中的指定属性,使用格式形如delattr(obj ,name),其中obj是目标对象名称,name为指定要删除的属性名称。

使用说明:
1 delattr(x, 'foobar') #将属性x.foobar删除 
2 del x.foobar   #这两行代码的效果等价


1.11vars
功能说明:返回一个对象的命名空间,返回类型为dictionary。

使用说明:
1 >>> import time #将time模块引入 
2 >>> vars(time) #显示该模块的命名空间
3 {'__file__': '/usr/lib64/python2.4/lib-dynload/timemodule.so', 'tzset': <built-in function tzset>, 'ctime': <built-in function ctime>….} #篇幅原因,后续内容显示未完全

1.12locals
功能说明:返回一个局部(函数)命名空间,返回类型为dictionary。

使用说明:
1 >>> def ak(x,y):
2 ...    i=x
3 ...    j=y
4 ...    print locals()
5 ...
6 >>> ak(1,2)
7 {'i': 1, 'y': 2, 'j': 2, 'x': 1}  #显示当前作用域内局部命名空间


1.13globals
功能说明:返回当前作用域内的全局命名空间,返回类型为dictionary

使用说明:
1 >>> def ak(x,y):
2 ...     j=x
3 ...     i=y
4 ...     print globals()
5 ...
6 >>> ak(1,2)
7 {'__builtins__': <module '__builtin__' (built-in)>, 'ak': <function ak at 0x2b9d5b98c230>, '__name__': '__main__', '__doc__': None} #显示当前作用域内全局命名空间


1.14type
功能说明:该函数有两种使用形式,type(obj)用来返回对象的类型,返回值是一个类型对象。type(name,bases,dict)返回一个新的类型对象。这实际上是对一个动态形式的类的描述。name字符串是类的名字,而成为__name__属性;bases元组给出了基类而成为__bases__属性;dict字典是包含有类体的名字空间而成为__dict__属性。

使用说明:
1 >>> type(os)     #返回os的类型
2 <type 'module'>
3 >>> type("123")
4 <type 'str'>
5 >>> type(123)
6 <type 'int'>
7 >>> class x(object):       #定义一个新的类型
8 ...     a=1
9 ... 
10 >>> X = type('X', (object,), dict(a=1))  #和上面等效的定义新类型
11 >>> type(x)      
12 <type 'type'>
13 >>> type(X)
14 <type 'type'>
15 >>> globals()
16 {'__builtins__': <module '__builtin__' (built-in)>, 'ak': <function ak at 0x2b9d5b98c230>, 'X': <class '__main__.X'>, 'x': <class '__main__.x'>, '__name__': '__main__', 'os': <module 'os' from '/usr/lib64/python2.4/os.pyc'>, '__doc__': None}


1.15isinstance
功能说明:使用方式形如isinstance(object, classinfo),如果对象变量是classinfo变量的一个实例,或者直接的或间接地子类则返回True,否则返回False。

使用说明:
1 >>> class x(object): 
2 ...     a=1
3 ... 
4 >>> k=x()
5 >>> isinstance(k,x) 
6 True


1.16issubclass
功能说明:使用方式形如issubclass(class,classinfo),如果class是(直接或间接)classinfo的一个子类则返回True,否则返回False。

使用说明:
1 >>> class x(object):       #创建x类继承自object类
2 ...     a=1
3 ... 
4 >>> issubclass(x,object) 
5 True


1.17range
功能说明:range是用来返回一个整数列表,使用格式形如range([start,] stop[, step]),其中start表示起始数字,stop表示终止数字,step表示渐进幅度。

使用说明:
1 >>> range(5)        #各种range的使用格式
2 [0, 1, 2, 3, 4]
3 >>> range(2, 5)
4 [2, 3, 4]
5 >>> range(2, 5, 2)
6 [2, 4]


2类型转换
2.1chr
功能说明:把一个ASCII数值变成字符,格式形如chr(i),其中i为字符的ASCII码。

使用说明:
1 >>> chr(89)       #字符转换ASCII 89
2 'Y'


2.2ord
功能说明:当变量是unicode对象,或者是比特值,再或者为 8位的字符串时,给一个长度为1的字段的变量,将返回对应的ASCII码值。

使用说明:
1 >>> ord('Y')       #返回字符Y的ASCII值
2 89


2.3oct
功能说明:把整数转换成八进制表示的字符串

使用说明:
1 >>> oct(100)       #返回整数100的八进制字符串
2 '0144'


2.4hex
功能说明:把整数转换成十六进制表示的字符串

使用说明:
1 >>> hex(100)       #返回整数100的十六进制字符串
2 '0x64'


2.5str
功能说明:返回一个表示对象的打印友好的字符串。对于字符串,返回的是字符串。对于repr(object)和str()的区别是str(object)不会总是试图返回一个让eval()接受的字符串。它的目标是返回一个打印字符串。如果没有字符串,将返回空的字符串""。

使用说明:
1 >>> str('abc')       #对于字符串,返回的是字符串
2 'abc'
3 >>> globals()
4 {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'os': <module 'os' from '/usr/lib64/python2.4/os.pyc'>, '__doc__': None}
5 >>> str(__name__)   #对于模块对象,显示的是globals()中对应的字符串
6 '__main__'
7 >>> str(os)
8 "<module 'os' from '/usr/lib64/python2.4/os.pyc'>"


2.6list
功能说明:返回一个list,其条目的内容和顺序和可迭代对象是一致的。使用格式形如list(obj),可迭代对象可以是一个序列,一个支持迭代容器或一个迭代器对象。如果迭代对象已经是一个list,将会返回一个copy,和iterable[:]一样。如果没有变量,将返回一个空的list[]。

使用说明:
1 >>> list("abc")    #对于字符串,返回的是字符的list
2 ['a', 'b', 'c']


2.7tuple
功能说明:返回一个元组,它的条目和与迭代对象中条目的顺序是一样的。迭代对象可以是序列,或支持迭代的容器,或一个迭代器对象。如果迭代对象已经是一个元组,它会完整的返回。例如,tuple("abc") 返回('a', 'b', 'c')以及tuple(1, 2, 3)返回(1, 2, 3)。如果没有变量给出,返回一个新的空变量。 实际上元组是跟列表非常相近的另一种容器类型.元组和列表看起来不同的一点是元组用的是圆括号而列表用的是方括号。而功能上,元组和列表相比有一个很重要的区别,元组是一种不可变类型。正因为这个原因,元组能做一些列表不能做的事情,例如用做一个字典的key。另外当处理一组对象时,这个组默认是元组类型。

使用说明:
1 >>> tuple("abc")    #对于字符串,返回的是字符的list
2 ('a', 'b', 'c')

2.8dict
功能说明:dict可以通过参数来创建一个字典,当参数为空时,表示创建一个空字典。当参数为一个序列时,则可以通过此序列中数据来创建字典。

使用说明:
1 >>> fdict = dict((['x', 1], ['y', 2]))    #创建字典
2 >>> fdict
3 {'y': 2, 'x': 1}


2.9int
功能说明:把数字字符串或数字类型的字符转换为整型。

使用说明:
1 >>> a='123'   #变量为数字字符串
2 >>> int(a)      #返回整型
3 123
4 >>> int(123.123)   #将浮点数转化为整型
5 123


2.10max
功能说明:返回最大值,有两种使用方式,形如max(seq)和max(a,b,c…..),第一种格式返回序列seq中最大项;第二种格式返回多个参数中最大的一个参数值。

使用说明:
1 >>> max(1,2,3)   #多个参数计算最大值
2 3      
3 >>> a=[1,2,3]
4 >>> max(a)   #返回序列的最大值
5 3


2.11min
功能说明:返回最小值,有两种使用方式,形如min(seq)和min(a,b,c…..),第一种格式返回序列seq中最小项;第二种格式返回多个参数中最小的一个参数值。

使用说明:
1 >>> max(1,2,3)   #多个参数计算最小值
2 1      
3 >>> a=[1,2,3]
4 >>> min(a)   #返回序列的最小值
5 1


3SYS模块
3.1sys.argv
功能说明:sys.argv是一个list,包含所有的命令行参数,sys.argv[0]表示代码本身文件路径,所以参数从1开始。

使用说明:
1 a.python arg1   #arg1在a.python中使用sys.argv[1]来表示


3.2sys.stdin、sys.stdout和sys.stderr
功能说明:分别表示标准输入、标准输出和错误输出的文件对象。

使用说明:
1 sys.stdin.readline() #可以和操作文件一样来操作这3个对象

3.3sys.exit
功能说明:退出解释器并返回系统退出状态。带有一个可选的整数参数返回给调用它的程序,无参数或者参数为0的情况表示正常退出。

使用说明:
1 >>> import sys
2 >>> sys.exit(0)    #正常退出解释器


3.4sys.modules
功能说明:表示一个字典,表示系统中所有可用的module。

使用说明:
1 >>> import sys
2 >>> sys.modules    #查询当前系统所有可用module
3 {'copy_reg': <module 'copy_reg' from '/usr/lib64/python2.4/copy_reg.pyc'>, 'japanese.aliases': <module 'japanese.aliases' from '/usr/lib64/python2.4/site-packages/japanese/aliases/__init__.pyc'>,……} #篇幅原因,此处只显示部分结果 

3.5sys.platform
功能说明:表示返回操作系统平台名称。

使用说明:
1 >>> import sys
2 >>> sys.platform    #显示当前操作系统信息
3 'linux2'


3.6sys.path
功能说明:sys.path 是一个list,指明所有查找module,package的路径。

使用说明:
1 >>> import sys
2 >>> sys.path    #显示当前操作系统路径信息
3 ['', '/home/storware_st/common', '/home/storware_st/log', '/home/storware_st/config', '/home/storware_st/lv', '/home/storware_st/raid', '/home/storware_st/st_run', '/usr/lib64/python24.zip', '/usr/lib64/python2.4', '/usr/lib64/python2.4/plat-linux2', '/usr/lib64/python2.4/lib-tk', '/usr/lib64/python2.4/lib-dynload', '/usr/lib64/python2.4/site-packages', '/usr/lib64/python2.4/site-packages/Numeric', '/usr/lib64/python2.4/site-packages/gtk-2.0', '/usr/lib/python2.4/site-packages']


3.7sys.builtin_module_names
功能说明:sys.builtin_module_names表示Python解释器导入的模块元组。

使用说明:
1 >>> import sys
2 >>> sys.builtin_module_names    #显示当前导入的模块元组
3 ('__builtin__', '__main__', '_codecs', '_sre', '_symtable', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'zipimport')


3.8sys.maxint
功能说明:sys.maxint 是一个整型数,表示系统能表示的最大整型值。

使用说明:
1 >>> import sys
2 >>> sys.maxint  #显示当前系统能表示的最大整型值
3 9223372036854775807


3.9sys.maxunicode
功能说明:sys.maxunicode 是一个整型数, 表示系统能表示的最大unicode值。

使用说明:
1 >>> import sys
2 >>> sys.maxunicode  #显示当前系统能表示的最大unicode值
3 1114111


4OS模块
4.1os.mkdir
功能说明:os.mkdir的功能是创建一个目录,格式形如mkdir(path [, mode=0777]),其中mode为目录的文件属性。其中path可以为绝对路径也可以是单个目录名,单个目录名默认为当前目录创建。

使用说明:
1 >>> import os
2 >>> os.mkdir('lufan11' , 0777)  #显示当前系统能表示的最大unicode值
3 drwxr-xr-x 2 root   root       4096 Oct 21 23:43 lufan11  #查询有如下目录信息


4.2os.system
功能说明:os.system的功能是利用系统调用,在shell中执行输入的命令。格式形如os.system(cmd),其中cmd表示需要在系统中执行的命令。执行成功返回0,其它则对应执行错误类型。

使用说明:
1 >>> import os
2 >>> a=os.system(''echo hello'')  #在shell中执行echo hello命令
3 hello
4 >>> print a                #命令执行成功返回0
5 0


4.3os.listdir
功能说明:os.listdir是一个列表,列举了指定目录下的所有文件。使用格式形如os.listdir(path),其中path表示绝对路径也可以是单个目录名,单个目录名默认为当前目录下目录文件名。

使用说明:
1 >>> import os
2 >>> os.list(''.'')  #列出当前目录下的文件
3 ['st_common.py', 'st_stat.pyc', 'st_stat.py', 'st_ssh.py', 'st_log.py', 'st_common.pyc', '__init__.py', 'st_log.pyc', 'st_ssh.pyc', '__init__.pyc']


4.4os.rename
功能说明:给文件或文件夹改名,格式形如rename(src,dst),其中src为原名称,dst为修改后名称。可以修改路径,但是注意会覆盖名称相同的目标文件。

使用说明:
1 >>> import os
2 >>> os.rename("1.txt","2.txt")  #将当前目录下的1.txt文件改名为2.txt
3 >>> os.rename("2.txt","/root/3.txt")  #将当前目录下的2.txt文件改名为root目录下的3.txt


4.5os.remove
功能说明:删除一个文件。格式形如os.remove(path),其中path为绝对路径也可以是单个文件名,单个文件名默认为当前目录下的文件名,注意不能删除目录文件类型。

使用说明:
1 >>> import os
2 >>> os.remove("/root/3.txt")  #删除root目录下的3.txt文件


4.6os.rmdir
功能说明:删除一个空目录。格式形如os.remove(path),其中path为绝对路径也可以是单个目录名,单个文件名默认为当前目录下目录文件名,注意一定要是空目录。

使用说明:
1 >>> import os
2 >>> os.rmdir("test")  #删除当前目录下的空目录test

4.7os.name
功能说明:返回当前操作系统名称,结果例如('posix', 'nt', 'os2', 'mac', 'ce' or 'riscos')。

使用说明:
1 >>> import os
2 >>> os.name   #查询当前操作系统名称
3 'posix'


4.8os.sep
功能说明:表示操作系统中的文件分隔符,是一个字符串类型,不同操作系统值不一样。

使用说明:
1 >>> import os
2 >>> os.sep  #查询当前操作系统的文件分隔符
3 '/'


5TIME模块
5.1time.clock
功能说明:返回程序开始到调用clock之间的时间。

使用说明:
1 import time
2 for x in range(1000000):
3     y=x
4 print "clock1:%s" % time.clock()
5 for x in range(1000000):
6     y=x
7 print "clock2:%s" % time.clock()
8 for x in range(1000000):
9     y=x
10 print "clock3:%s" % time.clock()
11  clock1:0.44            #返回的是程序已运行的时间
12  clock2:0.9             
13  clock3:1.34            


5.2time.localtime
功能说明:将输入的秒数转化为时间的元组类型,有9个元素,分别表示年、月、日、时、分、秒、星期几、当年的第几天和是否为夏令时。如果不输入秒数,则默认转化当前的时间。

使用说明:
1 >>> import time
2 >>> time.localtime(1)  #转化系统时间经过1秒的元组
3 (1970, 1, 1, 8, 0, 1, 3, 1, 0)  #这个时间会因为时区不同而不同
4 >>> time.localtime()  #不输入秒数,默认转化当前时间
5 (2010, 10, 22, 21, 52, 48, 4, 295, 0) 


5.3time.mktime
功能说明:将一个时间的元组类型转换为秒数,类型为浮点型。此命令相当于localtime的逆向操作。

使用说明:
1 >>> import time
2 >>> time.mktime(time.localtime(1))  #将一个时间的元组类型转换为秒数
3 1.0  


5.4time.sleep
功能说明:线程推迟指定的时间运行,输入参数为需要延迟的秒数。可以输入浮点数使延迟更加精确。

使用说明:
1 time.sleep(1)   #将线程挂起1秒

5.5time.strftime
功能说明:将一个时间的元组类型转化对指定的字符串格式,不输入时间元组,默认为当前时间。使用格式形如strftime(format[, tuple]),其中format的格式定义如下:
1 %y 两位数的年份表示(00-99)
2 %Y 四位数的年份表示(000-9999)
3 %m月份(01-12)     
4 %d 月内中的一天(0-31)
5 %H 24小时制小时数(0-23)
6 %I 12小时制小时数(01-12)
7 %M 分钟数(00=59)
8 %S 秒(00-59)
9 %a 本地简化星期名称
10 %A 本地完整星期名称
12 %b 本地简化的月份名称
13 %B 本地完整的月份名称
14 %c 本地相应的日期表示和时间表示
15 %j 年内的一天(001-366)
16 %p 本地A.M.或P.M.的等价符
17 %U 一年中的星期数(00-53)星期天为星期的开始
18 %w 星期(0-6),星期天为星期的开始
19 %W 一年中的星期数(00-53)星期一为星期的开始
20 %x 本地相应的日期表示
21 %X 本地相应的时间表示
22 %Z 当前时区的名称
23 %% %号本身

使用说明:
1 >>> import time
2 >>> time.strftime('%y',time.localtime(1))  #按格式返回指定时间元组
3 '70'


5.6time.time
功能说明:返回当前时间的时间戳,类型为浮点数。

使用说明:
1 >>> import time
2 >>> time.time() #返回当前时间的时间戳
3 1287760666.668386


5.7time.gmtime
功能说明:将时间戳转化为一个包含9个元素的时间元组。 

使用说明:
1 >>> import time
2 >>> time.gmtime(time.time()) #将当前时间戳转化为时间元组
3 (2010, 10, 22, 15, 20, 13, 4, 295, 0)


5.8time.ctime
功能说明:将一个时间戳(默认为当前时间)转换成一个时间字符串。 格式形如ctime(seconds),其中seconds为一个时间戳,如果不输入则默认当前时间戳。

使用说明:
1 >>> import time
2 >>> time.ctime() #将当前时间戳转化为字符串
3 'Fri Oct 22 23:24:24 2010'


6RE模块
6.1常用限定符说明
参数    说明
"."    匹配任何字符
"^"    匹配开头
"$"    匹配结尾
"*"    匹配0次或更多次之前的表达式。贪婪时,匹配尽可能多次
"+"    匹配1次或更多次之前的表达式。等价于{1,}
"?"    匹配0次或1次之前的表达式。等价于{0,1}
"*?,+?,??"    非贪婪匹配
"{m,n}"    贪婪式匹配之前的表达式m到n次
"{m,n}?"    非贪婪匹配之前的表达式m到n次
"\"    将下一个字符转义
[ABC]    指定一个字符集
[^ABC]    指定一个不在范围内的字符集
"A|B"    匹配条件A或条件B
(pattern)    匹配括号内的表达式,并作为匹配项
(?:pattern)    匹配括号内的表达式,但不作为匹配项
(?#...)    注释,忽略
(?=pattern)    预查,若之后的内容匹配表达式,则成立
(?!pattern)    预查,若之后的内容不匹配表达式,则成立
(?P<name>pattern)    给一个匹配项命名
(?P=name)    匹配与之前命名的匹配项内容相同的部分


6.2常用转义符说明
参数    说明
\A    匹配开头
\Z    匹配结尾
\b    匹配开头或结尾的空字符串,通常是指单词边界
\B    匹配非开头和结尾的空字符串,通常是指非单词边界
\d    匹配一个数字。等价于[0-9]
\D    匹配一个非数字。等价于[^0-9]
\s    匹配一个空白字符。等价于[ \t\n\r\f\v]
\S    匹配一个非空白字符。等价于[^ \t\n\r\f\v]
\w    匹配一个字母数字字符。等价于[a-zA-Z0-9_]
\W    匹配一个非字母数字字符。等价于[^a-zA-Z0-9_]
\\    匹配一个反斜杠
\f    匹配一个换页符。等价于\x0C 和 \cL
\n    匹配一个换行符。等价于\x0A 和 \cJ
\r    匹配一个回车符。等价于\x0D 和 \cM
\t    匹配一个制表符。等价于\x09 和 \cI
\v    匹配一个垂直制表符。等价于\x0B 和 \cK
\xHH    匹配 HH,其中 HH 为十六进制转义值
\uHHHH    匹配 HHHH,其中 HHHH 是一个用四个十六进制数字表示的Unicode字符

6.3常用匹配
参数    说明
中文字符的正则表达式    [\u4e00-\u9fa5]
双字节字符(包括汉字在内)    [^\x00-\xff]
空行的正则表达式    \n[\s| ]*\r
首尾空格的正则表达式    (^\s*)|(\s*$)
Email地址的正则表达式    \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
网址URL的正则表达式    ^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*\\?\\S*)?$
帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)    ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
国内电话号码    (\d{3}-|\d{4}-)?(\d{8}|\d{7})?
0-255    1\d\d|2[0-4]\d|25[0-5]|\d{2}|\d
IP地址    ((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(1\d\d|2[0-4]\d|25[0-5]|\d{2}|\d))
0-FF    [0-9A-F]{1,2}

6.4re.match
功能说明:尝试从字符串的开始匹配一个模式,使用格式形如re.match(pattern, string[, flags]),pattern表示正则表达式,string表示要匹配的字符串,flags是标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等。如果匹配成功返回一个匹配对象,否则返回None。

使用说明:
1 import re        #生成一个python文件,包括以下语句
2 text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 m = re.match(r"(\w+)\s", text)     #匹配第一个空字符前的单词
4 if m:
5    print m.group(0), '\n', m.group(1)  
6 else:
7    print 'not match'
8 JGood        #执行上述文件的结果
9 JGood


6.5re.search
功能说明:re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。使用格式形如re.search(pattern, string[, flags]) ,pattern表示正则表达式,string表示要匹配的字符串,flags是标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等,具体在compile命令中详细解释。re.search和re.match的区别在于re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

使用说明:
1 import re        #生成一个python文件,包括以下语句
2 text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 m =re.search(r'\shan(ds)ome\s', text)      #匹配第一个空字符前的单词
4 if m:
5    print m.group(0), '\n', m.group(1)  
6 else:
7    print 'not match'
8  handsome        #执行上述文件的结果
9 ds


6.6re.sub
功能说明:re.sub用于替换字符串中的匹配项,使用格式形如re.sub(pattern, repl, string, count), pattern表示正则表达式,repl表示替换后的字符串,string表示要匹配的字符串,count参数指替换个数。默认为0,表示每个匹配项都替换。

使用说明:
1 >>>import re
2 >>>text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 >>>print re.sub(r'\s+', '-', text)     #表示匹配text,将空格替换为-
4 JGood-is-a-handsome-boy,he-is-cool,clever,and-so-on...


6.7re.subn
功能说明:类似于re.sub,使用格式形如re.subn(pattern, repl, string, count), pattern表示正则表达式,repl表示替换后的字符串,string表示要匹配的字符串,count参数指替换个数。与re.sub不同的是,前者返回的是字符串,而re.subn返回的是元组。

使用说明:
1 >>> import re
2 >>> text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 >>> print re.subn(r'\s+', '-', text)     #表示匹配text,将空格替换为-
4 ('JGood-is-a-handsome-boy,-he-is-cool,-clever,-and-so-on...', 11)  #返回元组类型,其中11为匹配的次数

6.8re.split
功能说明:re.split用来分割字符串,使用格式形如re.split (pattern, string, maxsplit=0), 用匹配pattern的子串来分割string,如果pattern里使用了圆括号,那么被pattern匹配到的串也将作为返回值列表的一部分。如果maxsplit不为0,则最多被分割为maxsplit个子串,剩余部分将整个地被返回。

使用说明:
1 >>> import re 
2 >>> text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 >>> print re.split(r"\s+",text)     #根据匹配情况进行字符分割
4 ['JGood', 'is', 'a', 'handsome', 'boy,he', 'is', 'cool,clever,and', 'so', 'on...']   

6.9re.findall
功能说明:re.findall可以以列表的形式返回string里匹配pattern的不重叠的子串。使用格式形如re.findall(pattern, string[, flags]), string会被从左到右依次扫描,返回的列表也是从左到右一次匹配到的。如果pattern里含有组的话,那么会返回匹配到的组的列表;如果pattern里有多个组,那么各组会先组成一个元组,然后返回值将是一个元组的列表。

使用说明:
1 >>> import re 
2 >>> text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 >>> print re.findall(r"\w*oo\w*",text)     #根据匹配情况进行返回
4 ['JGood', 'cool']  


6.10re.compile
功能说明:re.compile(pattern[, flags])根据正则表达式字符串 pattern 和可选的flags 生成正则表达式对象,正则表达式被编译成 `RegexObject` 实例,可以为不同的操作提供方法,如模式匹配搜索或字符串替换。re.compile的优点是可以对规则进行预编译以提速。flags有下面的定义:
参数    说明
I (IGNORECASE, I)    表示大小写忽略,使匹配对大小写不敏感
L (LOCALE, L )    使一些特殊字符集,依赖于当前环境,做本地化识别(locale-aware)匹配
M (MULTILINE, M)    多行模式 使 ^ $ 匹配除了string开始结束外,还匹配一行的开始和结束
S (DOTALL, S)    匹配包括‘\n’在内的任意字符,否则 . 不包括‘\n’
U    让\w、\W、\b、\B、\d、\D、\s和\S依赖Unicode库
X (VERBOSE, X)    能够使用 REs 的 verbose 状态,使之被组织得更清晰易懂

使用说明:
1 >>> import re
2 >>> text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 >>> pat = re.compile(r"\w*oo\w*")   #相当于将正则表达式赋值给一个变量
4 >>> print re.findall(pat,text)
5 ['JGood', 'cool']


6.11re.escape
功能说明:re.escape是将字符串中的非字母数字的字符进行转义,返回一个字符串。

使用说明:
1 >>> import re
2 >>> text = "JGood is a handsome boy, he is cool, clever, and so on..."
3 >>> re.escape(text)   #将text中的所有非字母数字的字符进行转义
4 'JGood\\ is\\ a\\ handsome\\ boy\\,\\ he\\ is\\ cool\\,\\ clever\\,\\ and\\ so\\ on\\.\\.\\.'


7FILE文件操作
7.1open
功能说明:open的功能是用来打开一个文件,使用格式形如open(name[, mode[, buffering]]),其中name为要打开的文件名称,可以为绝对路径或者当前目录下文件,mode为文件打开模式,模式可以置为(r,w,a,U等),buffering默认为0表示不进行缓冲;如果为1表示进行“行缓冲“;如果是一个大于1的数表示缓冲区的大小,应该是以字节为单位的。

使用说明:
1 >>> open('2.python','w')     #以写模式打开当前目录下的2.python文件
2 <open file '2.python', mode 'w' at 0x2b4f342a17b0>

7.2close
功能说明:close()的作用是将文件对象的closed标志置成关闭,多次关闭不会引发异常。

使用说明:
1 >>> x=open('2.python','w')    
2 >>> x.closed    #显示文件对象x的closed标志 
3 False          #当前文件对象已经被打开
4 >>> x.close()       #将文件对象closed标志置为关闭
5 >>> x.closed       #再次查看closed标志状态已经改变
6 True


7.3flush
功能说明:flush的作用是将内部I/O缓冲区中的内容写入文件。
 
使用说明:
1 >>> x=open('2.python','w')    
2 >>> x.flush      #对文件对象x执行刷缓存
<built-in method flush of file object at 0x2b014c9618a0>


7.4read
功能说明:读取文件中的内容以字符串返回。使用格式形如read([size]),其中size参数省略则默认读取文件中所有内容,否则读取文件中size字节的内容。

使用说明:  
1 >>> x=open('1.python','r')
2 >>> x.read(10)    #读取文件1.python中10字节的内容
3 'import tim'


7.5readline
功能说明:按行读取文件中的内容以字符串返回。使用格式形如readline([size]),其中size参数省略则默认读取一整行,否则读取该行的前size字节的内容。

使用说明:
1 >>> x=open('1.python','r')
2 >>> x.readline()    #读取文件1.python中第一行的内容
3 'import time\n'
4 >>> x.readline()    #读取文件1.python中第二行的内容
4 'print "clock1:%s" % time.clock()  \n'


7.6tell
功能说明:tell返回的是当前文件的位置信息。

使用说明:
1 >>> x=open('1.python','r')
2 >>> x.readline()    #读取文件1.python中第一行的内容
3 'import time\n'
4 >>> x.tell()       #返回文件的当前读写位置
5 12
6 >>> x.readline()    #读取文件1.python中第二行的内容
7 'print "clock1:%s" % time.clock()  \n'
8 >>> x.tell()   #返回文件的当前读写位置
9 47


7.7seek
功能说明:seek的作用是移动文件操作位置,使用格式形如seek(offset[, whence]),offset表示以字节为单位的偏移量,whence默认为0,表示从文件开始处进行偏移,为1时则表示从当前文件操作位置开始,为2表示文件结尾处进行偏移。

使用说明:
1 >>> x=open('1.python','r')
2 >>> x.readline()    #读取文件1.python中第一行的内容
3 'import time\n'
4 >>> x.tell()       #返回文件的当前读写位置
5 12
6 >>> x.seek(1,1)  #从当前位置向后偏移一个字节
7 >>> x.tell()
8 13


7.8truncate
功能说明:truncate的作用是裁剪文件,使用格式形如truncate([size]),其中size为空表示默认裁剪到当前文件操作位置为止,即tell()返回的位置。不为空则表示裁剪size字节的文件。

使用说明:
1 >>> x=open('2.txt','a')   #文件2.txt中只有一行字符串12345678
2 >>> x.truncate(5)     #裁剪5字节的内容
3 cat 2.txt    #退出命令行查看2.txt的内容,只有前提个字节的内容
4 12345


7.9write
功能说明:将字符串写入文件。使用格式形如write(str),其中str表示要写入文件的字符串,写入的位置为当前文件操作位置。

使用说明:
1 >>> x=open('noexist.txt','a')   #以追加的方式生成当前目录下文件noexist.txt
2 >>> x.write('hello world')     #在文件中写入hello world
3 cat noexist.txt
4 hello world


7.10writelines
功能说明:将序列中的内容写入文件。使用格式形如writelines(seq), 把seq的内容全部写到文件中。这个函数也只是忠实地写入,不会在每行后面加上任何东西。

使用说明:
1 >>>x=open('noexist.txt','a')   #以追加的方式生成当前目录下文件noexist.txt
2 >>>str=['e-mail', 'net-surfing', 'homework','chat']
3 >>>x.writelines(str)
3 cat noexist.txt
4 e-mailnet-surfinghomeworkchat

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天读点书学堂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值