python5个标准库,python标准库参考手册

  python5个标准库,python标准库参考手册

  本文给大家带来了一些关于python的知识,主要介绍了一些关于标准库摘要的问题。下面就来看看吧,希望对你有帮助。

  推荐:python视频教程

  python标准库思维导图:

  

1、操作系统接口

os模块提供了许多与操作系统相关的功能。

  导入操作系统

  Os.getcwd() #返回当前工作目录

   C:\\Python34

  OS . chdir(/server/access logs )#修改当前工作目录

  Os.system(mkdir today) #执行系统命令mkdir。

  建议使用0“导入操作系统”样式,而不是“从操作系统导入*”。这就保证了os.open()这个因操作系统不同而异的函数不会覆盖内置函数open()。

  os常用命令

  方法函数1os.access(path,mode)检查权限模式2os.chdir(path)更改当前工作目录3os.chflags(path,flags)将路径的标记设置为数字标记。40 OS。4os.chmod(路径,模式)更改权限5os.chown(路径,uid,gid)

  /td>更改文件所有者6os.chroot(path) 改变当前进程的根目录7os.close(fd) 关闭文件描述符 fd8os.closerange(fd_low, fd_high) 关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略9os.dup(fd) 复制文件描述符 fd10os.dup2(fd, fd2) 将一个文件描述符 fd 复制到另一个 fd2

2、文件通配符

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

  

>>> import glob

  >>> glob.glob('*.py')

  ['primes.py', 'random.py', 'quote.py']


3、命令行参数

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

  sys.argv
可以用sys.argv获取当前正在执行的命令行参数的参数列表(list)。
变量解释

  

  • sys.argv[0]当前程序名
  • sys.argv[1]第一个参数
  • sys.argv[2]第二个参数
len(sys.argv)-1 参数个数(减去文件名)

  例如在命令行中执行 "python demo.py one two three" 后可以得到以下输出结果:

  

>>> import sys

  >>> print(sys.argv)

  ['demo.py', 'one', 'two', 'three']


4、字符串正则匹配

re模块为高级字符串处理提供了正则表达式工具。可以说是爬虫必备,对于复杂的匹配和处理,正则表达式提供了简洁、优化的解决方案:如果只需要简单的功能,应该首先考虑字符串方法,因为它们非常简单,易于阅读和调试:

  

>>> 'tea for too'.replace('too', 'two')

  'tea for two'

re.match函数

  re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

  函数语法

  

re.match(pattern, string, flags=0)
函数参数说明:

  参数描述pattern匹配的正则表达式string要匹配的字符串。flags标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。匹配成功re.match方法返回一个匹配的对象,否则返回None。

  我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

  匹配对象方法描述group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。


5、数学计算

math模块为浮点运算提供了对底层C函数库的访问:

  

>>> import math

  >>> math.cos(math.pi / 4)

  0.70710678118654757

  >>> math.log(1024, 2)

  10.0

在实际工作中,math标准库往往无法满足需求,我还需要扩展库:NumPy

  NumPy(Numerical Python) 支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

  

  • NumPy 官网 NumPy

6、发送邮件

有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls 接收的数据的 urllib.request 以及用于发送电子邮件的 smtplib:

  

import smtplib

  smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )

参数说明

  

  • host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如: runoob.com,这个是可选参数。
  • port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下 SMTP 端口号为25。
  • local_hostname: 如果 SMTP 在你的本机上,你只需要指定服务器地址为 localhost 即可。
Python SMTP 对象使用 sendmail 方法发送邮件,语法如下:

  

SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
参数说明

  

  • from_addr: 邮件发送者地址。
  • to_addrs: 字符串列表,邮件发送地址。
  • msg: 发送消息
案例:

  

#!/usr/bin/python

  # -*- coding: UTF-8 -*-

  import smtplib

  from email.mime.text import MIMEText

  from email.header import Header

  sender = 'from@runoob.com'

  receivers = ['429240967@qq.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱

  # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

  message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')

  message['From'] = Header("菜鸟教程", 'utf-8') # 发送者

  message['To'] = Header("测试", 'utf-8') # 接收者

  subject = 'Python SMTP 邮件测试'

  message['Subject'] = Header(subject, 'utf-8')

  try:

   smtpObj = smtplib.SMTP('localhost')

   smtpObj.sendmail(sender, receivers, message.as_string())

   print "邮件发送成功"

  except smtplib.SMTPException:

   print "Error: 无法发送邮件"


7、日期和时间

datetime模块为日期和时间处理同时提供了简单和复杂的方法。

  支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出。

  该模块还支持时区处理:

  

>>> # dates are easily constructed and formatted

  >>> from datetime import date

  >>> now = date.today()

  >>> now

  datetime.date(2003, 12, 2)

  >>> now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")

  '12-02-03. 02 Dec 2003 is a Tuesday on the 02 day of December.'

时间的三种存在方式:时间对象,时间字符串,时间戳。

  (1)字符串转datetime:

  

>>> string = '2014-01-08 11:59:58'

  >>> time1 = datetime.datetime.strptime(string,'%Y-%m-%d %H:%M:%S')

  >>> print time1

  2014-01-08 11:59:58

(2)datetime转字符串:

  

>>> time1_str = datetime.datetime.strftime(time1,'%Y-%m-%d %H:%M:%S')

  >>> time1_str

  '2014-01-08 11:59:58'

(3)时间戳转时间对象:

  

>>>time1 = time.localtime()

  >>>time1_str = datetime.datetime.fromtimestamp(time1)


8、数据压缩

以下模块直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile。

  

>>> import zlib

  >>> s = b'witch which has which witches wrist watch'

  >>> len(s)

  41

  >>> t = zlib.compress(s)

  >>> len(t)

  37

  >>> zlib.decompress(t)

  b'witch which has which witches wrist watch'

  >>> zlib.crc32(s)

  226805979


9、性能度量

有些用户对了解解决同一问题的不同方法之间的性能差异很感兴趣。Python 提供了一个度量工具,为这些问题提供了直接答案。

  例如,使用元组封装和拆封来交换元素看起来要比使用传统的方法要诱人的多,timeit 证明了现代的方法更快一些。

  

>>> from timeit import Timer

  >>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit()

  0.57535828626024577

  >>> Timer('a,b = b,a', 'a=1; b=2').timeit()

  0.54962537085770791

相对于 timeit 的细粒度,:mod:profile 和 pstats 模块提供了针对更大代码块的时间度量工具。

  


10、测试模块

开发高质量软件的方法之一是为每一个函数开发测试代码,并且在开发过程中经常进行测试

  doctest模块提供了一个工具,扫描模块并根据程序中内嵌的文档字符串执行测试。

  测试构造如同简单的将它的输出结果剪切并粘贴到文档字符串中。

  通过用户提供的例子,它强化了文档,允许 doctest 模块确认代码的结果是否与文档一致:

  

def average(values):

   """Computes the arithmetic mean of a list of numbers.

   >>> print(average([20, 30, 70]))

   40.0

   """

   return sum(values) / len(values)

  import doctest

  doctest.testmod() # 自动验证嵌入测试

推荐学习:python视频教程以上就是归纳总结Python标准库的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!

  

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: