码迷,mamicode.com
首页 > 编程语言 > 详细

Python_08-常用模块

时间:2015-05-10 06:18:23      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:

1     常用模块介绍

1.1      os模块

1.2      sys模块

1.3      built-in内置模块

1.4      time模块

1.5      re模块

2     常用模块分类

2.1      python运行时服务

2.2      数学

2.3      数据结构,算法和代码简化

2.4      string 和 text 处理

2.5      python数据库访问

2.6      文件和目录处理

2.7      操作系统的服务

2.8      线程和并行

2.9      网络编程和套接字(sockets)

2.10    internet应用程序编程

2.11     web 编程

2.12    internet 数据处理和编码

 

 

 

 

 

1       常用模块介绍

1.1   os模块

Python的标准库中的os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在LinuxWindows下运行。

 

下面列出了一些在os模块中比较有用的部分。它们中的大多数都简单明了。

 

os.sep 可以取代操作系统特定的路径分隔符。windows下为\\

os.name 字符串指示你正在使用的平台。比如对于Windows,它是‘nt‘,而对于Linux/Unix用户,它是‘posix‘

os.getcwd() 函数得到当前工作目录,即当前Python脚本工作的目录路径。

os.getenv() 获取一个环境变量,如果没有返回none

os.putenv(key, value)设置一个环境变量值

os.listdir(path)返回指定目录下的所有文件和目录名。

os.remove(path)函数用来删除一个文件。

os.system(command)函数用来运行shell命令。

os.linesep:字符串给出当前平台使用的行终止符。例如,Windows使用‘\r\n‘Linux使用‘\n‘Mac使用‘\r‘

os.path.split(p)函数返回一个路径的目录名和文件名。

os.path.isfile()os.path.isdir()函数分别检验给出的路径是一个文件还是目录。

os.path.existe()函数用来检验给出的路径是否真地存在

os.curdir:返回当前目录(‘.‘)

os.chdir(dirname):改变工作目录到dirname

os.path.getsize(name):获得文件大小,如果name是目录返回0L

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

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

os.path.splitext():分离文件名与扩展名

os.path.join(path,name):连接目录与文件名或目录

os.path.basename(path):返回文件名

os.path.dirname(path):返回文件路径

 

 

使用环境64位的fedora 18,python版本是python 2.7.3

1、os.getcwd()函数

    功能:获取当前目录,python 的工作目

 

import os                                     

pwd = os.getcwd()                                         

print (pwd)


2、os.name 函数

功能:获取当前使用的操作系统(获取信息不够详细)

              其中 ‘nt‘ 是 windows,‘posix‘ 是 linux 或者 unix

 

import os

name = os.name

if name == ‘posix‘:

    print ("this is Linux or Unix")

elif name == ‘nt‘:

     print ("this is windows")                                

else:                           

   print ("this is other system") 

3、os.remove()函数

 功能:删除指定文件

 

 eg:删除 file.txt 文件

import os

os.remove(’file.txt‘)

 

4、os.removedirs()函数

    功能:删除指定目录

    eg:删除 file目录

 

import os

os.removedirs(‘file’)

 

5、os.system()函数

    功能:运行shell命令

    eg:执行ls -a > 1.txt命令

 

import os

os.system(‘ls -a > 1.txt’)

 

6、os.mkdir()函数

    功能:创建一个新目录

    eg:创建一个 file 目录

 

import os

os.mkdir(‘file’)

 

7、os.chdir()函数

    功能:改变当前路径到指定路径

    eg:我现在从当前路径到 filepath 所指定的路径下

 

import os

filepath = ‘/home‘

pwd = os.getcwd()

print (pwd)

os.chdir(filepath)

pwd = os.getcwd()

print (pwd)

 

8、os.listdir()函数

    功能:返回指定目录下的所有目录和文件

    eg:列出当前目录下的所有文件和目录

 

import os

pwd = os.getcwd()

name = os.listdir(pwd)

for filename in name:

    print (filename)

 

  os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果。

  os.name:返回当前操作系统名称(‘posix‘, ‘nt‘, ‘os2‘, ‘mac‘, ‘ce‘ or ‘riscos‘

  os中定义了一组文件、路径在不同操作系统中的表现形式参数,如

    os.sep(文件夹分隔符,windows中是 \

    os.extsep(扩展名分隔符,windows中是 .

    os.pathsep(目录分隔符,windows中是 ;

    os.linesep(换行分隔符,windows中是 \r\n

  os中有大量文件、路径操作的相关函数,如:

    listdir(path):列举目录下的所有文件

    makedir(path):创建文件夹,注:创建已存在的文件夹将异常

    makedirs(path):递归式的创建文件夹,注:创建已存在的文件夹将异常

    remove(filename):删除一个文件

    rmdir(path):删除一个文件夹,注:删除非空的文件夹将异常

    removedirs(path):递归的删除文件夹,直到有一级的文件夹非空,注:文件夹路径不能以‘\‘结束

    rename(src,dst):给文件或文件夹改名(可以改路径,但是不能覆盖目标文件)

    renames(src,dst):递归式的给文件或文件名改名

    walk(path):列举path下的所有文件、文件夹

  os中与进程相关的操作,如:

    execl(path):运行一个程序来替代当前进程,会阻塞式运行

    _exit(n):退出程序

    startfile(filename):用与文件关联的程序运行,关联程序打开后,立即返回

    system(cmd):运行一个程序或命令,会立即返回,并在cmd执行完成后,会返回cmd退出代码

  os.path:在不同的操作系统中调用不同的模块,是一个可import的模块,这个模块中提供很多有用的操作:

    abspath(path):返回path的绝对路径,若path已经是绝对路径了,则保持。

    basename(path):返回path中的文件名。

    commonprefix(list):返回list中的统一前缀,用于获得一组字符串的左起相同的内容

    dirname(path):返回path中的文件夹部分,结果不包含‘\‘

    exists(path):文件或文件夹是否存在

    getatime(path):文件或文件夹的最后访问时间,从新纪元到访问时的秒数

    getmtime(path):文件或文件夹的最后修改时间

    getctime(path):文件或文件夹的创建时间

    getsize(path):文件或文件夹的大小,若是文件夹返回0

    isabs(path):返回是否是绝对路径

    isfile(path):返回是否是文件路径

    isdir(path):返回是否是文件夹路径

    islink(path):返回是否是快捷方式

    join(path1,path2,...):path进行组合,若其中有绝对路径,则之前的path将被删除

    normcase(path):转换路径中的间隔符

    normpath(path):转换路径为系统可识别的路径

    realpath(path):转换路径为绝对路径

    split(path):将路径分解为(文件夹,文件名)

    splitext(path):将路径分解为(其余部分,.扩展名),若文件名中没有扩展名,扩展名部分为空字符串

  在操作与系统不支持的对象时,抛出OSError异常。

 

1.2   sys模块

  系统信息和方法模块,提供了很多实用的变量和方法:

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

    builtin_module_names:Python解释器导入的模块列表

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

    exc_info():获取当前正在处理的异常类

    exc_typeexc_valueexc_traceback:当前处理的异常详细信息

    executable:Python解释程序路径

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

    getwindowsversion():获取Windows的版本

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

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

    maxint:最大的Int

    maxunicode:最大的Unicode

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

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

    platform:返回操作系统平台名称

 

1.3   built-in内置模块

    eval(expr[,globals[,locals]]):执行一段代码,并返回结果

    exec(expr[,globals[,locals]]):执行一段代码

    execfile(file[,globals[,locals]]):执行一个文件

    filter(func,list):使用函数来过滤list,返回满足要求的list元素组

    getattr(obj,name[,default]):获取对象的属性,若没有该属性,则返回默认值

    setattr(obj,name,value):设置对象的属性,若没有该属性,则异常

    hasattr(obj,name):返回对象是否有指定属性

    input([prompt]):提示控制台输入,必须输入常量或变量,若想直接输入字符串,需要使用引号括起来

    raw_input([prompt]):提示控制台输入,直接输入数字或字符串

    open(filename,mode):打开文件,mode可以为:w,r,a,若想同时读写,则加上+,若想以二进制读写,则加上b

    reload(module):再次导入已导入过的模块

    type(obj):返回一个对象的类型

    zip(seq1,...):将若干个元组进行合并,长度以元组中的最短的为准

 

1.4   time模块

  这个模块定义的都是和时间、时钟、计时相关的内容:

    clock():返回第一次调用到当前调用时的计时,是以秒为单位的浮点数

    localtime([t]):返回时间的数组,有9个元素(,,,,,,星期几,当年的第几天,是否夏令时),星期一为0

    mktime(tlist):localtime的反函数,将一个9元数组转成一个浮点时间值,后3个元素,系统会自己调整

    sleep(n):挂起线程n

    strftime(fstring[,t]):格式化显示时间,fstring常用关键字:

      %a,%A:星期的缩写,全拼

      %b,%B:月份的缩写,全屏

      %c,%x,%X:本地默认表示法(日期时间,日期,时间)

      %Y(%y:2),%m,%d,%H,%M,%S:年月日时分秒

      %w:星期,0为星期天

    strptime(string[,format]):将字符串解析为9元素的时间数组

    time():返回当前时间值,浮点数

  更高级的用法可以使用datetime模块,创建其中的date,time对象,可以进行加减操作,得出timedelta对象。

 

1.5   re模块

限定符说明:

".": 匹配任何字符

"^": 匹配开头

"$": 匹配结尾

"*": 匹配0次或更多次之前的表达式。贪婪时,匹配尽可能多次

"+": 匹配1次或更多次之前的表达式。等价于{1,}

"?": 匹配0次或1次之前的表达式。等价于{0,1}

"*?,+?,??": 非贪婪匹配

"{m,n}": 贪婪式匹配之前的表达式mn

"{m,n}?": 非贪婪匹配之前的表达式mn

"\": 将下一个字符转义

[ABC]: 指定一个字符集

[^ABC]: 指定一个不在范围内的字符集

"A|B": 匹配条件A或条件B

(pattern): 匹配括号内的表达式,并作为匹配项

(?:pattern): 匹配括号内的表达式,但不作为匹配项

(?#...): 注释,忽略

(?=pattern): 预查,若之后的内容匹配表达式,则成立

(?!pattern): 预查,若之后的内容不匹配表达式,则成立

(?P<name>pattern): 给一个匹配项命名

(?P=name)匹配与之前命名的匹配项内容相同的部分

如:s=‘12a34a56‘

   re.findall(‘12(?P<xxx>.).*(?P=xxx)56)‘, s)

   (?P<xxx>.)匹配到a,则(?P=xxx)的内容也必须为a时才pp

(?iLmsux): 设置I,L,M,S,U,or X标记

转义符说明:

\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字符

常用匹配:

匹配中文字符的正则表达式: [\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})?

匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

模块使用:

    match:

    search:

    sub: 替换

    subn: 替换并返回替换的次数

    split: 分隔

    findall: 查找所有匹配项

    compile:

    purge:

    escape:

可选参数:

    I(IGNORECASE): 忽略大小写

    L(LOCALE): 使用\w,\W,\b,\B时依据本地配置???

    M(MULTILINE): 多行,"^"匹配每行的开头,"$"匹配每行的末尾

    S(DOTALL): 使"."匹配包含换行符在内的任意字符

    X(VERBOSE): 忽略空白处和注释内容

U(UNICODE): 使\w,\W,\b,\B依靠UNICODE编码

 

2       常用模块分类

 

python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的。

 

常用的librariesmodules)如下:

 

2.1   python运行时服务

* copy copy模块提供了对复合(compound)对象(listtupledictcustom class)进行浅拷贝和深拷贝的功能。

* pickle pickle模块被用来序列化python的对象到bytes流,从而适合存储到文件,网络传输,或数据库存储。(pickle的过程也被称serializing,marshalling或者flatteningpickle同时可以用来将bytes流反序列化为python的对象)。

* syssys模块包含了跟python解析器和环境相关的变量和函数。

* 其他 atexitgcinspectmarshaltracebacktypeswarningsweakref

 

 

2.2   数学

 

* decimalpython中的float使用双精度的二进制浮点编码来表示的,这种编码导致了小数不能被精确的表示,例如0.1实际上内存中为0.100000000000000001,还有3*0.1 == 0.3 False. decimal就是为了解决类似的问题的,拥有更高的精确度,能表示更大范围的数字,更精确地四舍五入。

* mathmath模块定义了标准的数学方法,例如cos(x),sin(x)等。

* randomrandom模块提供了各种方法用来产生随机数。

* 其他:fractionsnumbers

 

2.3   数据结构,算法和代码简化

* array array代表数组,类似与list,与list不同的是只能存储相同类型的对象。

* bisect bisect是一个有序的list,其中内部使用二分法(bitsection)来实现大部分操作。

* collectionscollections模块包含了一些有用的容器的高性能实现,各种容器的抽象基类,和创建name-tuple对象的函数。例如包含了容器dequedefaultdictnamedtuple等。

* heapqheapq是一个使用heap实现的带有优先级的queue

* itertoolsitertools包含了函数用来创建有效的iterators。所有的函数都返回iterators或者函数包含iterators(例如generators generators expression)。

* operator operator提供了访问python内置的操作和解析器提供的特殊方法,例如 x+y addxy),x+=yiaddxy),a % b modab)等等。

* 其他:abccontextlibfunctools

 

2.4   string 和 text 处理

*codecscodecs模块被用来处理不同的字符编码与unicode text io的转化。

* rere模块用来对字符串进行正则表达式的匹配和替换。

* stringstring模块包含大量有用的常量和函数用来处理字符串。也包含了新字符串格式的类。

* structstruct模块被用来在python和二进制结构间实现转化。

* unicodedataunicodedata模块提供访问unicode字符数据库

 

2.5   python数据库访问

* 关系型数据库拥有共同的规范Python Database API Specification V2.0MySQLOracle等都实现了此规范,然后增加自己的扩展。

* sqlite3: sqlite3 模块提供了SQLite数据库访问的接口。SQLite数据库是以一个文件或内存的形式存在的自包含的关系型数据库。

* DBM-style 数据库模块python提供了打了的modules来支持UNIX DBM-style数据库文件。dbm模块用来读取标准的UNIX-dbm数据库文件,gdbm用来读取GNU dbm数据库文件,dbhash用来读取Berkeley DB数据库文件。所有的这些模块提供了一个对象实现了基于字符串的持久化的字典,他与字典dict非常相似,但是他的keysvalues都必须是字符串。

* shelveshelve模块使用特殊的“shelf”对象来支持持久化对象。这个对象的行为与dict相似,但是所有的他存储的对象都使用基于hashtable的数据库(dbhashdbmgdbm)存储在硬盘。与dbm模块的区别是所存储的对象不仅是字符串,而且可以是任意的与pickle兼容的对象。

 

2.6   文件和目录处理

* bz2bz2模块用来处理以bzip2压缩算法压缩的文件。

* filecmpfilecmp模块提供了函数来比较文件和目录。

* fnmatchfnmatch模块提供了使用UNIX shell-style的通配符来匹配文件名。这个模块只是用来匹配,使用glob可以获得匹配的文件列表。

* globglob模块返回了某个目录下与指定的UNIX shell通配符匹配的所有文件。

* gzipgzip模块提供了类GzipFile,用来执行与GNUgzip程序兼容的文件的读写。

* shutil shutil模块用来执行更高级别的文件操作,例如拷贝,删除,改名。shutil操作之针对一般的文件,不支持pipesblock devices等文件类型。

* tarfile tarfile模块用来维护tar存档文件。tar没有压缩的功能。

* tempfiletempfile模块用来产生临时文件和文件名。

* zipfile zipfile模块用来处理zip格式的文件。

* zlibzlib模块提供了对zlib库的压缩功能的访问。

 

2.7   操作系统的服务

* cmmands commands模块被用来执行简单的系统命令,命令以字符串的形式传入,且同时以字符串的形式返回命令的输出。但是此模块只在UNIX系统上可用。

* configParserconfigParser模块用来读写windowsini格式的配置文件。

* datetimedatetime模块提供了各种类型来表示和处理日期和时间。

* errno定义了所有的errorcode对应的符号名字。

* ioio模块实现了各种IO形式和内置的open()函数。

* logging logging模块灵活方便地对应用程序记录eventserrorswarnings,和debuging 信息。这些log信息可以被收集,过滤,写到文件或系统log,甚至通过网络发送到远程的机器上。

*mmapmmap模块提供了内存映射文件对象的支持,使用内存映射文件与使用一般的文件或byte字符串相似。

*msvcrtmscrt只可以在windows系统使用,用来访问Visual C运行时库的很多有用的功能。

*optparseoptparse模块更高级别来处理UNIX style的命令行选项sys.argv

* osos模块对通用的操作系统服务提供了可移植的(portable)的接口。os可以认为是ntposix的抽象。nt提供windows的服务接口,posix提供UNIXlinuxmac)的服务接口。

* os.pathos.path模块以可移植的方式来处理路径相关的操作。

* signalsignal模块用来实现信号(signal)处理,往往跟同步有关。

* subprocesssubprocess模块包含了函数和对象来统一创建新进程,控制新进程的输入输出流,处理进程的返回。

* timetime模块提供了各种时间相关的函数。常用的time.sleep().

* winreg, winreg模块用来操作windows注册表。

* 其他fcntl

 

2.8   线程和并行

* multiprocessingmultiprocessing模块提供通过subprocess来加载多个任务,通信,共享数据,执行各种同步操作。

* threadingthreading模块提供了thread类很很多的同步方法来实现多线程编程。

* queuequeue模块实现了各种多生产者,多消费者队列,被用来实现多线程程序的信息安全交换。

* 其他Coroutines and Microthreading

 

2.9   网络编程和套接字(sockets)

* asynchatasynchat模块通过封装asyncore来简化了应用程序的网络异步处理。

* sslssl模块被用来使用secure sockets layerSSL)包装socket对象,从而使得实现数据加密和终端认证。python使用openssl来实现此模块。

* socketserversocketserver模块提供了类型简化了TCPUDPUNIX领域的socket server的实现。

* 其他asyncoreselect

 

2.10     internet应用程序编程

* ftplibftplib模块实现了ftpclient端协议。此模块很少使用,因为urllib提供了更高级的接口。

* http包,包含了http clientserver的实现和cookies管理的模块。

* smtplibsmtplib包含了smtp client的底层接口,用来使用smtp协议发送邮件。

* urlliburllib包提供了高级的接口来实现与http serverftp server和本地文件交互的client

* xmlrpcxmlrpc模块被用类实现XML-RPC client

 

2.11     web 编程

* cgicgi模块用来实现cgi脚本,cgi程序一般地被webserver执行,用来处理用户在form中的输入,或生成一些动态的内容。当与cgi脚本有管的request被提交,webservercgi作为子进程执行,cgi程序通过sys.stdin或环境变量来获得输入,通过sys.stdout来输出。

* webbrowserwebbrowser模块提供了平台独立的工具函数来使用web browser打开文档。

* 其他wsgiref/WSGI (Python Web Server Gateway Interface).

 

2.12     internet 数据处理和编码

* base64base64模块提供了base64base32base16编码方式,用来实现二进制与文本间的编码和解码。base64通常用来对编码二进制数据,从而嵌入到邮件或http协议中。

* binasciibinascii模块提供了低级的接口来实现二进制和各种ASCII编码的转化。

* csvcsv模块用来读写comma-separated valuesCSV)文件。

* emailemail包提供了大量的函数和对象来使用MIME标准来表示,解析和维护email消息。

* hashlibhashlib模块实现了各种secure hashmessage digest algorithms,例如MD5SHA1

* htmlparserhtml.parser),此模块定义了HTMLParser来解析HTMLXHTML文档。使用此类,需要定义自己的类且继承于HTMLParser

* jsonjson模块被用类序列化或饭序列化Javascript object notationJSON)对象。

* xml,xml包提供了各种处理xml的方法。

Python_08-常用模块

标签:

原文地址:http://www.cnblogs.com/jiu0821/p/4491607.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!