Python学习(六)模块——标准模块

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Python 标准模块Python 带有一个标准模块库,并发布有独立的文档(库参考手册)。对于程序员而言,标准库与语言本身同样重要,它好比一个百宝箱,能为各种常见的任务提供完美的解决方案。

这边简单介绍学习下常用的 Python 标准库,主要包括:操作系统接口、文件通配符、系统模块、字符串正则匹配、数学(之前 int、float 章节已介绍过)、互联网访问、日期和时间等。

使用这些大型模块,dir() 及 help() 函数比较有用;当然标准库远不止这些,慢慢了解学习吧~

标准模块的存放位置: Python 目录下 lib 文件夹内,如 我的就是 C:\Python34\Lib,如有必要,可查阅对应的模块源文件

os —— 操作系统接口仅列出几个常用方法

os.name返回当前操作系统名

os.environ当前系统所有的环境变量

os.getenv(key) 获取某个环境变量值;若无,返回None

os.getpid() 返回当前进程PID(进程相关在UNIX系统比较实用,有比较多的方法,详细参考对应标准库文档)

os.getlogin() 返回当前系统登录用户名

os.system(...) 运行shell命令

os.getcwd() 获取当前工作目录

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

os.listdir(path)列出目录下的所有文件和文件夹名称

os.path ...文件夹及文件操作的相关函数方法,这边暂不列出,{后续会针对此列出专题学习文件操作}

1importos2#PRint(dir(os))3#help(os)4print(os.name)#当前操作系统名,定义了'posix' -linux/Unix,'nt' - Windows,'mac','os2','ce','java'5print(os.environ)#当前系统所有的环境变量6print(os.getenv('HOMEPATH'))#返回某个环境变量的值;若无,返回None78print(os.getpid())#返回当前进程PID9print(os.getlogin())#返回当前系统登录用户名1011os.system('cmd')#os.system() 运行shell命令,相当于启动dos1213print(os.getcwd())#获取当前工作目录14#os.chdir('d:\\test') # 改变当前工作目录至 d:\\test1516print(os.listdir('d:\\'))#列出目录下的所有文件和文件夹名称17#help(os.path)

glob —— 文件通配符glob 模块提供了一个函数用于从目录通配符搜索中生成文件列表

参考下例, glob.glob("*.py") 返回了所有当前工作目录(已改为"C:\Python34\Lib")下,通配 ".py" 的文件;也可以指定绝对路径,如 print(glob.glob("C:\\Python34\\Lib\\*.py"))

下表列出了通配模式中可以使用的通配符。这些通配符与操作系统的命令shell下的通配符并不一定完全一致,但是Python的glob模块在所有的平台上都使用相同的语法。

注意,通配模式的语法与正则表达式的语法类似但不相同。

通配符 匹配 示例

* 0个或多个任意字符 *.m* 匹配扩展名以m开头的名称

? 任意单个字符 ??? 匹配恰好包含3个字符的名称

[…] 方括号中列出的任意一个字符 [AEIOU]* 匹配以大写的元音字母开头的名称

[!...] 不在方括号中出现的任意一个字符 *[!s] 匹配不以s结尾的名称

sys —— 系统模块sys模块包含系统对应的功能。

命令行参数:通用工具脚本经常调用命令行参数,而这些以链表形式存储于sys模块的argv变量。

例如,在当前目录下创建一 test.py 文件,内容如下,当前目录下 cmd

cmd 下运行命令如 python test.py 111 222

getopt 模块使用Unix getopt() 函数处理 sys.argv。更多的复杂命令行处理由argparse模块提供

Python 版本

sys.version 提供安装的Python的版本信息;sys.version_info 是一个元组表明Python版本信息。

1importsys2print(sys.version)3print(sys.version_info)

操作系统类型

sys.platform 提供系统平台类型;如 win32 linux2 等

1importsys2print(sys.platform)

错误输出重定向和程序终止

sys 有 stdin, stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息

大多脚本的定向终止都是用 sys.exit()

re —— 字符串正则匹配re 模块为高级字符串处理提供了正则表达式工具。这边简单介绍下,{后续会针对此列出专题学习正则}。

正则效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于语法数量不同;但不不被支持的语法通常是不常用的部分。

如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。

举个简单的例子如下:(findall() 函数搜索string,以列表形式返回全部能匹配的子串)

1importre2print(re.findall(r'\d+','one1two2three3four4'))#这边正则表示仅匹配数字3print(re.findall(r'\bf[a-z]*','which foot or hand fell fastest'))#表示仅输出 f 开头的单词

urllib —— 互联网访问2.x版本的python可以直接使用import urllib来进行操作,但是3.x版本的python使用的是import urllib.request来进行操作;{后续会针对此列出专题学习网络访问相关操作}

举个简单的例子如下:

1fromurllib.requestimporturlopen2print(urlopen("http://www.baidu.com").read())#会 print 出百度的html源代码

datetime —— 日期和时间datetime 模块为日期和时间处理提供了方法。支持日期和时间算法的同时,还可格式化输出。{后续会针对此列出专题学习日期和时间相关}

举个简单的例子如下:

1fromdatetimeimportdate2print(date.today())3now =date.today()4print(now.strftime("%m-%d-%y,%A"))#格式化输出5birthday = date(1990,7,7)6age = now - birthday#时间处理7print(age.days)

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航