python常用模块汇总



os模块

os.remove() 删除文件 

os.unlink() 删除文件 

os.rename() 重命名文件 

os.listdir() 列出指定目录下所有文件 

os.chdir() 改变当前工作目录

os.getcwd() 获取当前文件路径

os.mkdir() 新建目录

os.rmdir() 删除空目录(删除非空目录, 使用shutil.rmtree())

os.makedirs() 创建多级目录

os.removedirs() 删除多级目录

os.stat(file) 获取文件属性

os.chmod(file) 修改文件权限

os.utime(file) 修改文件时间戳

os.name(file) 获取操作系统标识

os.system() 执行操作系统命令

os.execvp() 启动一个新进程

os.fork() 获取父进程ID,在子进程返回中返回0

os.execvp() 执行外部程序脚本(Uinx)

os.spawn() 执行外部程序脚本(Windows)

os.access(path, mode) 判断文件权限(详细参考cnblogs)

os.wait() 暂时未知


os.path模块

os.path.split(filename) 将文件路径和文件名分割(会将最后一个目录作为文件名而分离)

os.path.splitext(filename) 将文件路径和文件扩展名分割成一个元组

os.path.dirname(filename) 返回文件路径的目录部分

os.path.basename(filename) 返回文件路径的文件名部分

os.path.join(dirname,basename) 将文件路径和文件名凑成完整文件路径

os.path.abspath(name) 获得绝对路径

os.path.splitunc(path) 把路径分割为挂载点和文件名

os.path.normpath(path) 规范path字符串形式

os.path.exists() 判断文件或目录是否存在

os.path.isabs() 如果path是绝对路径,返回True

os.path.realpath(path) #返回path的真实路径

os.path.relpath(path[, start]) #从start开始计算相对路径 

os.path.normcase(path) #转换path的大小写和斜杠

os.path.isdir() 判断name是不是一个目录,name不是目录就返回false

os.path.isfile() 判断name是不是一个文件,不存在返回false

os.path.islink() 判断文件是否连接文件,返回boolean

os.path.ismount() 指定路径是否存在且为一个挂载点,返回boolean

os.path.samefile() 是否相同路径的文件,返回boolean

os.path.getatime() 返回最近访问时间 浮点型

os.path.getmtime() 返回上一次修改时间 浮点型

os.path.getctime() 返回文件创建时间 浮点型

os.path.getsize() 返回文件大小 字节单位

os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径

os.path.lexists #路径存在则返回True,路径损坏也返回True

os.path.expanduser(path) #把path中包含的”~”和”~user”转换成用户目录

os.path.expandvars(path) #根据环境变量的值替换path中包含的”$name”和”${name}”

os.path.sameopenfile(fp1, fp2) #判断fp1和fp2是否指向同一文件

os.path.samestat(stat1, stat2) #判断stat tuple stat1和stat2是否指向同一个文件

os.path.splitdrive(path) #一般用在windows下,返回驱动器名和路径组成的元组

os.path.walk(path, visit, arg) #遍历path,给每个path执行一个函数详细见手册

os.path.supports_unicode_filenames() 设置是否支持unicode路径名


time 模块

time.ctime( )  时间的字符串

time.time( )   返回当前时间的时间戳

time.sleep( )  延时多少秒


random 模块

random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。

random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。

random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。

random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等

random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。

random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改。


stat模块

描述os.stat()返回的文件属性列表中各值的意义

fileStats = os.stat(path) 获取到的文件属性列表

fileStats[stat.ST_MODE] 获取文件的模式

fileStats[stat.ST_SIZE] 文件大小

fileStats[stat.ST_MTIME] 文件最后修改时间

fileStats[stat.ST_ATIME] 文件最后访问时间

fileStats[stat.ST_CTIME] 文件创建时间

stat.S_ISDIR(fileStats[stat.ST_MODE]) 是否目录

stat.S_ISREG(fileStats[stat.ST_MODE]) 是否一般文件

stat.S_ISLNK(fileStats[stat.ST_MODE]) 是否连接文件

stat.S_ISSOCK(fileStats[stat.ST_MODE]) 是否COCK文件

stat.S_ISFIFO(fileStats[stat.ST_MODE]) 是否命名管道

stat.S_ISBLK(fileStats[stat.ST_MODE]) 是否块设备

stat.S_ISCHR(fileStats[stat.ST_MODE]) 是否字符设置


string模块

 string.atof(s) 字符串转换成浮点型

  string.atoi(s[, base]) 字符串转换成整型

 string.capitalize(s) 字符串的第一个字符转换成大写

 string.capwords(s[, sep]) 字符串以sep为分隔符分割后的每个字段的首位转换为大写

string.center(s, len[, fillchar])字符串转换成指定长度,不够的用fillchar补充,且补充的字符在两边

 string.count(s, sub[, start[, end]])查询sub在s中的个数

  string.find(s, sub[, start,[end]]) 查询sub在s中的第一个位置

string.ljust(s, len[, fillchar])字符串左对齐,不够用fillchar补充

 string.lstrip(s[, chars]) 清除左边的空白字符

  string.upper(s) 字符串转换成大写的

string.join(list[, sep]) list里的字符串用sep连接起来

  string.replace(s, old, new[,max]) 字符串s里的old替换为new,最多替换为max次

string.translate(s, table[,delchar]) 字符串转换为指定的table里的字符,且删除指定的delchar

string.split(s[, sep[,maxsplit]])  字符串以sep作为分隔符,maxsplit作为分隔次数进行分隔


datetime,date,time模块

datetime.date.today() 本地日期对象,(用str函数可得到它的字面表示(2014-03-24))

datetime.date.isoformat(obj) 当前[年-月-日]字符串表示(2014-03-24)

datetime.date.fromtimestamp() 返回一个日期对象,参数是时间戳,返回 [年-月-日]

datetime.date.weekday(obj) 返回一个日期对象的星期数,周一是0

datetime.date.isoweekday(obj) 返回一个日期对象的星期数,周一是1

datetime.date.isocalendar(obj) 把日期对象返回一个带有年月日的元组


datetime对象

datetime.datetime.today() 返回一个包含本地时间(含微秒数)的datetime对象 2014-03-24 23:31:50.419000

datetime.datetime.now([tz]) 返回指定时区的datetime对象 2014-03-24 23:31:50.419000

datetime.datetime.utcnow() 返回一个零时区的datetime对象

datetime.fromtimestamp(timestamp[,tz]) 按时间戳返回一个datetime对象,可指定时区,可用于strftime转换为日期表示 

datetime.utcfromtimestamp(timestamp) 按时间戳返回一个UTC-datetime对象

datetime.datetime.strptime(‘2014-03-16 12:21:21‘,”%Y-%m-%d %H:%M:%S”) 将字符串转为datetime对象

datetime.datetime.strftime(datetime.datetime.now(), ‘%Y%m%d %H%M%S‘) 将datetime对象转换为str表示形式

datetime.date.today().timetuple() 转换为时间戳datetime元组对象,可用于转换时间戳

datetime.datetime.now().timetuple()

time.mktime(timetupleobj) 将datetime元组对象转为时间戳

time.time() 当前时间戳

time.localtime

time.gmtime

sys模块

sys.argv 命令行参数List,第一个元素是程序本身路径 

sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 

sys.modules.keys() 返回所有已经导入的模块列表

sys.modules 返回系统导入的模块字段,key是模块名,value是模块 

sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息

sys.exit(n) 退出程序,正常退出时exit(0)

sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0

sys.version 获取Python解释程序的版本信息

sys.platform 返回操作系统平台名称

sys.stdout 标准输出

sys.stdout.write(‘aaa‘) 标准输出内容

sys.stdout.writelines() 无换行输出

sys.stdin 标准输入

sys.stdin.read() 输入一行

sys.stderr 错误输出

sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息 

sys.exec_prefix 返回平台独立的python文件安装的位置 

sys.byteorder 本地字节规则的指示器,big-endian平台的值是‘big‘,little-endian平台的值是‘little‘ 

sys.copyright 记录python版权相关的东西 

sys.api_version 解释器的C的API版本 

sys.version_info ‘final‘表示最终,也有‘candidate‘表示候选,表示版本级别,是否有后继的发行 

sys.getdefaultencoding() 返回当前你所用的默认的字符编码格式 

sys.getfilesystemencoding() 返回将Unicode文件名转换成系统文件名的编码的名字 

sys.builtin_module_names Python解释器导入的内建模块列表 

sys.executable Python解释程序路径 

sys.getwindowsversion() 获取Windows的版本 

sys.stdin.readline() 从标准输入读一行,sys.stdout.write(“a”) 屏幕输出a

sys.setdefaultencoding(name) 用来设置当前默认的字符编码(详细使用参考文档) 

sys.displayhook(value) 如果value非空,这个函数会把他输出到sys.stdout(详细使用参考文档)


types模块

保存了所有数据类型名称。

if type(‘1111‘) == types.StringType:

MySQLdb模块:

MySQLdb.get_client_info() 获取API版本

MySQLdb.Binary(‘string‘) 转为二进制数据形式

MySQLdb.escape_string(‘str‘) 针对mysql的字符转义函数

MySQLdb.DateFromTicks(1395842548) 把时间戳转为datetime.date对象实例

MySQLdb.TimestampFromTicks(1395842548) 把时间戳转为datetime.datetime对象实例

MySQLdb.string_literal(‘str‘) 字符转义


urllib模块

urllib.quote(string[,safe]) 对字符串进行编码。参数safe指定了不需要编码的字符

urllib.unquote(string) 对字符串进行解码

urllib.quote_plus(string[,safe]) 与urllib.quote类似,但这个方法用‘+‘来替换‘ ‘,而quote用‘%20‘来代替‘ ‘

urllib.unquote_plus(string ) 对字符串进行解码

urllib.urlencode(query[,doseq]) 将dict或者包含两个元素的元组列表转换成url参数。

例如 字典{‘name‘:‘wklken‘,‘pwd‘:‘123‘}将被转换为”name=wklken&pwd=123″

urllib.pathname2url(path) 将本地路径转换成url路径

urllib.url2pathname(path) 将url路径转换成本地路径

urllib.urlretrieve(url[,filename[,reporthook[,data]]]) 下载远程数据到本地

filename:指定保存到本地的路径(若未指定该,urllib生成一个临时文件保存数据)

reporthook:回调函数,当连接上服务器、以及相应的数据块传输完毕的时候会触发该回调

data:指post到服务器的数据

rulrs = urllib.urlopen(url[,data[,proxies]]) 抓取网页信息,[data]post数据到Url,proxies设置的代理

urlrs.readline() 跟文件对象使用一样

urlrs.readlines() 跟文件对象使用一样

urlrs.fileno() 跟文件对象使用一样

urlrs.close() 跟文件对象使用一样

urlrs.info() 返回一个httplib.HTTPMessage对象,表示远程服务器返回的头信息

urlrs.getcode() 获取请求返回状态HTTP状态码

urlrs.geturl() 返回请求的URL


re模块

一.常用正则表达式符号和语法:

'.' 匹配所有字符串,除\n以外

‘-’ 表示范围[0-9]

'*' 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。

'+' 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+

'^' 匹配字符串开头

‘$’ 匹配字符串结尾 re

'\' 转义字符, 使后一个字符改变原来的意思,如果字符串中有字符*需要匹配,可以\*或者字符集[*] re.findall(r'3\*','3*ds')结['3*']

'*' 匹配前面的字符0次或多次 re.findall("ab*","cabc3abcbbac")结果:['ab', 'ab', 'a']

‘?’ 匹配前一个字符串0次或1次 re.findall('ab?','abcabcabcadf')结果['ab', 'ab', 'ab', 'a']

'{m}' 匹配前一个字符m次 re.findall('cb{1}','bchbchcbfbcbb')结果['cb', 'cb']

'{n,m}' 匹配前一个字符n到m次 re.findall('cb{2,3}','bchbchcbfbcbb')结果['cbb']

'\d' 匹配数字,等于[0-9] re.findall('\d','电话:10086')结果['1', '0', '0', '8', '6']

'\D' 匹配非数字,等于[^0-9] re.findall('\D','电话:10086')结果['电', '话', ':']

'\w' 匹配字母和数字,等于[A-Za-z0-9] re.findall('\w','alex123,./;;;')结果['a', 'l', 'e', 'x', '1', '2', '3']

'\W' 匹配非英文字母和数字,等于[^A-Za-z0-9] re.findall('\W','alex123,./;;;')结果[',', '.', '/', ';', ';', ';']

'\s' 匹配空白字符 re.findall('\s','3*ds \t\n')结果[' ', '\t', '\n']

'\S' 匹配非空白字符 re.findall('\s','3*ds \t\n')结果['3', '*', 'd', 's']

'\A' 匹配字符串开头

'\Z' 匹配字符串结尾

'\b' 匹配单词的词首和词尾,单词被定义为一个字母数字序列,因此词尾是用空白符或非字母数字符来表示的

'\B' 与\b相反,只在当前位置不在单词边界时匹配

'(?P...)' 分组,除了原有编号外在指定一个额外的别名 re.search("(?P[0-9]{4})(?P[0-9]{2})(?P[0-9]{8})","371481199306143242").groupdict("city") 结果{'province': '3714', 'city': '81', 'birthday': '19930614'}

[] 是定义匹配的字符范围。比如 [a-zA-Z0-9] 表示相应位置的字符要匹配英文字符和数字。[\s*]表示空格或者*号。

二.常用的re函数:

方法/属性 作用

re.match(pattern, string, flags=0) 从字符串的起始位置匹配,如果起始位置匹配不成功的话,match()就返回none

re.search(pattern, string, flags=0) 扫描整个字符串并返回第一个成功的匹配

re.findall(pattern, string, flags=0) 找到RE匹配的所有字符串,并把他们作为一个列表返回

re.finditer(pattern, string, flags=0) 找到RE匹配的所有字符串,并把他们作为一个迭代器返回

re.sub(pattern, repl, string, count=0, flags=0) 替换匹配到的字符串


math模块

ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x

copysign:把y的正负号加到x前面,可以使用0

cos:求x的余弦,x必须是弧度

degrees:把x从弧度转换成角度

e:表示一个常量

exp:返回math.e,也就是2.71828的x次方

expm1:返回math.e的x(其值为2.71828)次方的值减1

fabs:返回x的绝对值

factorial:取x的阶乘的值

floor:取小于等于x的最大的整数值,如果x是一个整数,则返回自身

fmod:得到x/y的余数,其值是一个浮点数

frexp:返回一个元组(m,e),其计算方式为:x分别除0.5和1,得到一个值的范围

fsum:对迭代器里的每个元素进行求和操作

gcd:返回x和y的最大公约数

hypot:如果x是不是无穷大的数字,则返回True,否则返回False

isfinite:如果x是正无穷大或负无穷大,则返回True,否则返回False

isinf:如果x是正无穷大或负无穷大,则返回True,否则返回False

isnan:如果x不是数字True,否则返回False

ldexp:返回x*(2**i)的值

log:返回x的自然对数,默认以e为基数,base参数给定时,将x的对数返回给定的base,计算式为:log(x)/log(base)

log10:返回x的以10为底的对数

log1p:返回x+1的自然对数(基数为e)的值

log2:返回x的基2对数

modf:返回由x的小数部分和整数部分组成的元组

pi:数字常量,圆周率

pow:返回x的y次方,即x**y

radians:把角度x转换成弧度

sin:求x(x为弧度)的正弦值

sqrt:求x的平方根

tan:返回x(x为弧度)的正切值

trunc:返回x的整数部分