1、python常用函数年初大总结1.常用内置函数:(不用import就可以直接使用)help(obj)在线帮助, obj可是任何类型callable(obj)查看一个obj是不是可以像函数一样调用repr(obj)得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝eval_r(str)表示合法的python表达式,返回这个表达式dir(obj)查看obj的name space中可见的name hasattr(obj,name)查看一个obj的name space中是否有name getattr(obj,name)得到一个obj的name space中的一个name setat
2、tr(obj,name,value)为一个obj的name space中的一个name指向vale这个object delattr(obj,name)从obj的name space中删除一个name vars(obj)返回一个object的name space。用dictionary表示locals()返回一个局部name space,用dictionary表示globals()返回一个全局name space,用dictionary表示type(obj)查看一个obj的类型isinstance(obj,cls)查看obj是不是cls的instance issubclass(subcls,su
3、pcls)查看subcls是不是supcls的子类类型转换函数chr(i)把一个ASCII数值,变成字符ord(i)把一个字符或者unicode字符,变成ASCII数值oct(x)把整数x变成八进制表示的字符串hex(x)把整数x变成十六进制表示的字符串str(obj)得到obj的字符串描述list(seq)把一个sequence转换成一个list tuple(seq)把一个sequence转换成一个tuple dict(),dict(list)转换成一个dictionary int(x)转换成一个integer long(x)转换成一个long interger float(x)转换成一个浮
4、点数 max(.)求最大值min(.)求最小值用于执行程序的内置函数 2.和操作系统相关的调用系统相关的信息模块 import sys sys.argv是一个list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.sys.stdin.readline()从标准输入读一行sys.stdout.write(a)屏幕输出a sys.exit(exit_code)退出程序 sys.modules 是一个dictionary,表示系统中所有可用的module sys.platform 得到运行的操作系统环境 sys.pa
5、th 是一个list,指明所有查找module,package的路径.操作系统相关的调用和操作 import os os.environ 一个dictionary 包含环境变量的映射关系os.environHOME可以得到环境变量HOME的值os.chdir(dir)改变当前目录os.chdir(d:outlook)注意windows下用到转义os.getcwd()得到当前目录os.getegid()得到有效组id os.getgid()得到组id os.getuid()得到用户id os.geteuid()得到有效用户id os.setegid os.setegid() os.seteuid
6、() os.setuid()os.getgruops()得到用户组名称列表os.getlogin()得到用户登录名称 os.getenv 得到环境变量 os.putenv 设置环境变量 os.umask 设置umask os.system(cmd)利用系统调用,运行cmd命令操作举例:os.mkdir(/tmp/xx) os.system(echo hello /tmp/xx/a.txt)os.listdir(/tmp/xx)os.rename(/tmp/xx/a.txt,/tmp/xx/b.txt)os.remove(/tmp/xx/b.txt) os.rmdir(/tmp/xx)用pyth
7、on编写一个简单的shell #!/usr/bin/python import os, sys cmd = sys.stdin.readline()while cmd:os.system(cmd)cmd = sys.stdin.readline()用os.path编写平台无关的程序os.path.abspath(1.txt) = os.path.join(os.getcwd(), 1.txt)os.path.split(os.getcwd()用于分开一个目录名称中的目录部分和文件名称部分。os.path.join(os.getcwd(), os.pardir, a, a.doc)全成路径名称.
8、 os.pardir 表示当前平台下上一级目录的字符.os.path.getctime(/root/1.txt)返回1.txt的ctime(创建时间)时间戳os.path.exists(os.getcwd()判断文件是否存在os.path.expanduser(/dir)把扩展成用户根目录os.path.expandvars($PATH)扩展环境变量PATH os.path.isfile(os.getcwd()判断是否是文件名,1是0否os.path.isdir(c:Python26temp)判断是否是目录,1是0否os.path.islink(/home/huaying/111.sql)是否
9、是符号连接 windows下不可用os.path.ismout(os.getcwd()是否是文件系统安装点 windows下不可用os.path.samefile(os.getcwd(), /home/huaying)看看两个文件名是不是指的是同一个文件os.path.walk(/home/huaying, test_fun, a.c)遍历/home/huaying下所有子目录包括本目录,对于每个目录都会调用函数test_fun.例:在某个目录中,和他所有的子目录中查找名称是a.c的文件或目录。 def test_fun(filename, dirname, names): /filename
10、即是walk中的a.c dirname是访问的目录名称 if filename in names: /names是一个list,包含dirname目录下的所有内容print os.path.join(dirname, filename)os.path.walk(/home/huaying, test_fun, a.c)文件操作打开文件 f = open(filename, r) r只读 w写 rw读写 rb读二进制 wb写二进制w+写追加读写文件f.write(a) f.write(str)写一字符串f.writeline() f.readlines()与下read类同f.read()全读出来
11、f.read(size)表示从文件中读取size个字符f.readline()读一行,到文件结尾,返回空串. f.readlines()读取全部,返回一个list. list每个元素表示一行,包含nf.tell()返回当前文件读取位置f.seek(off, where)定位文件读写位置. off表示偏移量,正数向文件尾移动,负数表示向开头移动。 where为0表示从开始算起,1表示从当前位置算,2表示从结尾算.f.flush()刷新缓存关闭文件f.close() regular expression 正则表达式 import re 简单的regexp print match上例中首先生成一个p
12、attern(模式),如果和某个字符串匹配,就返回一个match object 除某些特殊字符metacharacter元字符,大多数字符都和自身匹配。这些特殊字符是。 $ * + ? | ( )字符集合(用表示)列出字符,如abc表示匹配a或b或c,大多数metacharacter在中只表示和本身匹配。例: a =.$*+?|()大多数metachar在中都和本身匹配,但不同 for i in a:if p.match(i): print %s is match %i else: print %s is not match %i 在中包含本身,表示或者匹配.用和表示.出现在的开头,表示取反.
13、abc表示除了a,b,c之外的所有字符。没有出现在开头,即于身身匹配。-可表示范围.a-zA-Z匹配任何一个英文字母。0-9匹配任何数字。在中的妙用。d 0-9D 0-9s tnrfvS tnrfvw a-zA-Z0-9_W a-zA-Z0-9_t表示和tab匹配,其他的都和字符串的表示法一致x20表示和十六进制ascii 0x20匹配有了,可以在中表示任何字符。注:单独的一个.如果没有出现中,表示出了换行n以外的匹配任何字符,类似n. regexp的重复m,n表示出现m个以上(含m个),n个以下(含n个).如ab1,3c和abc,abbc,abbbc匹配,不会与ac,abbbc匹配。 m是下
14、界,n是上界。m省略表下界是0,n省略,表上界无限大。*表示, +表示1, ?表示0,1最大匹配和最小匹配 python都是最大匹配,如果要最小匹配,在*,+,?,m,n后面加一个?. match object的end可以得到匹配的最后一个字符的位置。 字符串表示方法中用表示字符.大量使用影响可读性。解决方法:在字符串前面加一个r表示raw格式。 a = ra print a 结果是a a = ra print a 结果是a使用re模块 后用pattern的match,search的方法,得到MatchObject 再用match object得到匹配的位置,匹配的字符串等信息 RegxObj
15、ect常用函数: None 注:从str的开头开始匹配 和match()不同,不必从开头匹配re_obj.findall(str)返回str中搜索所有和re_obj匹配的部分.返回一个tuple,其中元素是匹配的字符串. MatchObject的常用函数m.start()返回起始位置,m.end()返回结束位置(不包含该位置的字符).m.span()返回一个tuple表示(m.start(), m.end()m.pos(), m.endpos(), m.re(), m.string()m.re().search(m.string(),m.pos(),m.endpos()会得到m本身m.find
16、iter()可以返回一个iterator,用来遍历所有找到的MatchObject. print m.span()高级regexp |表示联合多个regexp. A B两个regexp,A|B表示和A匹配或者跟B匹配.表示只匹配一行的开始行首,只有在开头才有此特殊意义。$表示只匹配一行的结尾A表示只匹配第一行字符串的开头匹配每一行的行首Z表示只匹配行一行字符串的结尾$匹配第一行的行尾b只匹配词的边界例:binfob只会匹配info不会匹配information B表示匹配非单词边界示例如下: None 分组(Group)示例: import re x = name: Charles Addre
17、ss: BUPT name: Ann Address: BUPT (.*)nAddress:(.*)n, re.M)p = (?P.*)nAddress:(?P.*)n, re.M)for m in p.finditer(x):print m.span()print here is your friends listprint %s, %s%m.groups() Compile Flag DOTALL, S 让.匹配任意字符,包括换行符n IGNORECASE, I 忽略大小写 LOCALES, L 让w W b B和当前的locale一致 MULTILINE, M 多行模式,只影响和$(参见上例) VERBOSE, X verbose模式
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1