设为首页 收藏本站
查看: 1468|回复: 0

[经验分享] Python学习(六)模块 —— 标准模块

[复制链接]

尚未签到

发表于 2015-11-30 09:22:14 | 显示全部楼层 |阅读模式
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 ...           文件夹及文件操作的相关函数方法,这边暂不列出,{后续会针对此列出专题学习文件操作}



1 import os
2 # print(dir(os))
3 # help(os)
4 print(os.name)                   # 当前操作系统名,定义了'posix' - Linux/Unix,'nt' - Windows,'mac','os2','ce','java'
5 print(os.environ)                # 当前系统所有的环境变量
6 print(os.getenv('HOMEPATH'))     # 返回某个环境变量的值;若无,返回None
7
8 print(os.getpid())               # 返回当前进程PID
9 print(os.getlogin())             # 返回当前系统登录用户名
10
11 os.system('cmd')                 # os.system() 运行shell命令,相当于启动dos
12
13 print(os.getcwd())               # 获取当前工作目录
14 # os.chdir('d:\\test')           # 改变当前工作目录至 d:\\test
15
16 print(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版本信息。



1 import sys
2 print(sys.version)
3 print(sys.version_info)
      操作系统类型
      sys.platform 提供系统平台类型;如 win32  linux2 等



1 import sys
2 print(sys.platform)
      错误输出重定向和程序终止
  sys 有 stdin, stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息
  大多脚本的定向终止都是用 sys.exit()
  

  re —— 字符串正则匹配
  re 模块为高级字符串处理提供了正则表达式工具。这边简单介绍下,{后续会针对此列出专题学习正则}。
  正则效率上可能不如str自带的方法,但功能十分强大。得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的,区别只在于语法数量不同;但不不被支持的语法通常是不常用的部分。
  如果已经在其他语言里使用过正则表达式,只需要简单看一看就可以上手了。
  举个简单的例子如下:(findall()  函数搜索string,以列表形式返回全部能匹配的子串)



1 import re
2 print(re.findall(r'\d+','one1two2three3four4'))                        # 这边正则表示仅匹配数字
3 print(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来进行操作;{后续会针对此列出专题学习网络访问相关操作}
  举个简单的例子如下:



1 from urllib.request import urlopen
2 print(urlopen("http://www.baidu.com").read())            # 会 print 出百度的html源代码
  

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



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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145163-1-1.html 上篇帖子: python导入自定义模块 下篇帖子: 用 Python 通过马尔可夫随机场(MRF)与 Ising Model 进行二值图降噪
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表