模块
python的脚本是py文本文件,一个py脚本文件可以单独运行,也可以导入另一个文件中。被当作导入的脚本文件称之为模块。
import cal #cal是一个cal.py文件,直接导入这个cal.py
cal.add(1,2) #调用cal.py文件中的add()函数
if _name_=="_main_": #判断调用此文件的文件名是否是主调用程序
包
模块可以按目录组织为包
创建包的步骤:
1、建立一个名字为包名字的文件夹
2、该文件夹下创建一个文件_init_.py
3、根据需要在该文件夹下存放脚本文件、已编译扩展及子包
import pack.m1,pack.m2,pack.m3
import csvp.cal #csvp为包名,该包下有个cal.py文件
print csvp.cal.add(2,3) #调用包名下模块中的函数add()
在csvp包(文件夹)下有个_init_.py,表示该csvp文件夹是一个包
正则表达式
#coding=utf-8
import re #使用正则表达式
s=r'abc' #定义正则表达式
print re.findall(s,"aaaaa") #返回[]
print re.findall(s,"abcaaaabc") #返回['abc', 'abc']
st="top tip tqp tep"
res=r"top"
print re.findall(res,st) #返回['top']
res=r"t[io]p" #适配方括号内的任意一个字符
print re.findall(res,st) #返回['top', 'tip']
res=r"t[^io]p" #适配除了方括号内指定字符以外的字符
print re.findall(res,st) #返回['tqp', 'tep']
res=r"^tip" #适配开头字符是tip
print re.findall(res,st) #返回[]
res=r"tep$" #适配尾字符是tep
print re.findall(res,st) #返回['tep']
res=r"x[0-9]" #用0-9表示从0到9的数字
print re.findall(res,"x8") #返回['x8']
\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]
r=r"^010-\d{8}" #匹配一个格式为 010-8个0到9的数字
* 指定前一个字符可以被匹配零次或更多次。
+匹配一次或更多次
?匹配一次或零次
{m,n} m,n是十进制整数。至少有m个重复,至多到n个重复。
{0,}等同于* {1,}等同于+, {0,1}与?相同。
编译正则表达式
p_tel=re.compile(r‘csvt')
print p_tel #<_sre.SRE_Pattern object at 0x000000000290E620>