《Python中常用的模块用法分析》由会员分享,可在线阅读,更多相关《Python中常用的模块用法分析(11页珍藏版)》请在金锄头文库上搜索。
1、本文较为详细的讲述了 Python 中常用的模块,分享给大家便于大家查阅参考之用。具体如下:1.1.内置模块内置模块( (不用不用 importimport 就可以直接使用就可以直接使用) )常用内置函数:常用内置函数:help(obj) 在线帮助, obj 可是任何类型callable(obj) 查看一个 obj 是不是可以像函数一样调用repr(obj) 得到 obj 的表示字符串,可以利用这个字符串 eval 重建该对象的一个拷贝eval_r(str) 表示合法的 python 表达式,返回这个表达式dir(obj) 查看 obj 的 name space 中可见的 namehasatt
2、r(obj,name) 查看一个 obj 的 name space 中是否有 namegetattr(obj,name) 得到一个 obj 的 name space 中的一个 namesetattr(obj,name,value)为一个 obj 的 name space 中的一个 name 指向 vale 这个 objectdelattr(obj,name) 从 obj 的 name space 中删除一个 namevars(obj) 返回一个 object 的 name space。用 dictionary 表示locals() 返回一个局部 name space,用 dictionary
3、表示globals() 返回一个全局 name space,用 dictionary 表示type(obj) 查看一个 obj 的类型isinstance(obj,cls) 查看 obj 是不是 cls 的 instanceissubclass(subcls,supcls) 查看 subcls 是不是 supcls 的子类类型转换函数:类型转换函数:chr(i) 把一个 ASCII 数值,变成字符ord(i) 把一个字符或者 unicode 字符,变成 ASCII 数值oct(x) 把整数 x 变成八进制表示的字符串hex(x) 把整数 x 变成十六进制表示的字符串str(obj) 得到 ob
4、j 的字符串描述list(seq) 把一个 sequence 转换成一个 listtuple(seq) 把一个 sequence 转换成一个 tupledict(),dict(list) 转换成一个 dictionaryint(x) 转换成一个 integerlong(x) 转换成一个 long intergerfloat(x) 转换成一个浮点数complex(x) 转换成复数max(.) 求最大值min(.) 求最小值用于执行程序的内置函数:用于执行程序的内置函数:complie 如果一段代码经常要使用,那么先编译,再运行会更快。2.2.和操作系统相关的调用和操作系统相关的调用系统相关的信息
5、模块系统相关的信息模块 importimport syssyssys.argv 是一个 list,包含所有的命令行参数.sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.sys.stdin.readline() 从标准输入读一行 sys.stdout.write(“a“) 屏幕输出 asys.exit(exit_code) 退出程序sys.modules 是一个 dictionary,表示系统中所有可用的 modulesys.platform 得到运行的操作系统环境sys.path 是一个 list,指明所有查找 module,packa
6、ge 的路径.操作系统相关的调用和操作操作系统相关的调用和操作 importimport ososos.environ 一个 dictionary 包含环境变量的映射关系 os.environ“HOME“ 可以得到环境变量 HOME 的值os.chdir(dir) 改变当前目录 os.chdir(d:outlook) 注意 windows 下用到转义os.getcwd() 得到当前目录os.getegid() 得到有效组 id os.getgid() 得到组 idos.getuid() 得到用户 id os.geteuid() 得到有效用户 idos.setegid os.setegid()
7、os.seteuid() os.setuid()os.getgruops() 得到用户组名称列表os.getlogin() 得到用户登录名称os.getenv 得到环境变量os.putenv 设置环境变量os.umask 设置 umaskos.system(cmd) 利用系统调用,运行 cmd 命令操作举例:?12os.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.
8、rmdir(/tmp/xx)用 python 编写一个简单的 shell?123456#!/usr/bin/pythonimport os, syscmd = sys.stdin.readline()while cmd:os.system(cmd)cmd = sys.stdin.readline()用用 os.pathos.path 编写平台无关的程序编写平台无关的程序os.path.abspath(“1.txt“) = os.path.join(os.getcwd(), “1.txt“)os.path.split(os.getcwd() 用于分开一个目录名称中的目录部分和文件名称部分。os.
9、path.join(os.getcwd(), os.pardir, a, a.doc) 全成路径名称.os.pardir 表示当前平台下上一级目录的字符 .os.path.getctime(“/root/1.txt“) 返回 1.txt 的 ctime(创建时间)时间戳os.path.exists(os.getcwd() 判断文件是否存在os.path.expanduser(/dir) 把扩展成用户根目录os.path.expandvars($PATH) 扩展环境变量 PATHos.path.isfile(os.getcwd() 判断是否是文件名,1 是 0 否os.path.isdir(c:
10、Python26temp) 判断是否是目录,1 是 0 否os.path.islink(/home/huaying/111.sql) 是否是符号连接 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.例:在某个目
11、录中,和他所有的子目录中查找名称是 a.c 的文件或目录:?1234def test_fun(filename, dirname, names): /filename 即是 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“)文件操作文件操作1.1.打开文件打开文件f = open(“filename“, “r“) r
12、 只读 w 写 rw 读写 rb 读二进制 wb 写二进制 w+写追加2.2.读写文件读写文件f.write(“a“) f.write(str) 写一字符串 f.writeline() f.readlines() 与下 read 类同f.read() 全读出来 f.read(size) 表示从文件中读取 size 个字符f.readline() 读一行,到文件结尾,返回空串. f.readlines() 读取全部,返回一个 list. list 每个元素表示一行,包含“n“f.tell() 返回当前文件读取位置f.seek(off, where) 定位文件读写位置. off 表示偏移量,正数向
13、文件尾移动,负数表示向开头移动。where 为 0 表示从开始算起,1 表示从当前位置算,2 表示从结尾算.f.flush() 刷新缓存3.3.关闭文件关闭文件f.close()regularregular expressionexpression 正则表达式正则表达式 importimport rere简单的简单的 regexpregexpp = pile(“abc“) if p.match(“abc“) : print “match“上例中首先生成一个 pattern(模式),如果和某个字符串匹配,就返回一个 match object除某些特殊字符 metacharacter 元字符,大多
14、数字符都和自身匹配。这些特殊字符是 。 $ * + ? | ( )字符集合字符集合( (用用表示表示) )列出字符,如abc表示匹配 a 或 b 或 c,大多数 metacharacter 在中只表示和本身匹配。例:?12345a = “.$*+?|()“ 大多数 metachar 在中都和本身匹配,但“不同p = pile(“+a+“)for i in a:if p.match(i):print “%s is match“ %ielse:print “%s is not match“ %i67在中包含本身,表示“或者“匹配.用和表示.出现在的开头,表示取反.abc表示除了 a,b,c 之外的
15、所有字符。没有出现在开头,即于身身匹配。-可表示范围.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.regexpregexp 的重复的重复m,n表示出现 m 个以上(含 m 个),n 个以下(含 n 个). 如 ab1,3c 和 abc,abbc,abbbc 匹配,不会与 ac,abbbc 匹配。m 是下界,n 是上界。m 省略表下界是 0,n 省略,表上界无限大。*表示, +表示1, ?表示0,1最大匹配和最小匹配 python 都是最大匹配,如果要最小匹配,在*,+,?,m,n后面加一个?.match object 的 end 可以得到匹配的最后一个字符的位置。pile(“a*“).match(aaaa).end() 4 最大匹配pile(“a*?“).match(aaaa).end() 0 最小匹配使用原始字符串使用原始字符串字符串表示方法中用表示字符.大量使用影响可读性。解决方法:在字符串前面