python标准库有哪些-Python教程

资源魔 40 0

理解更多对于python规范库的常识,能够点击:Python教程

操作零碎接口

os模块提供了很多与操作零碎相干联的函数。

>>> import os
>>> os.getcwd()      # 前往以后的工作目次
'C:\\Python34'
>>> os.chdir('/server/accesslogs')   # 修正以后的工作目次
>>> os.system('mkdir today')   # 执行零碎饬令 mkdir 
0

倡议应用 "import os" 格调而非 "from os import *"。这样能够保障随操作零碎没有同而有所变动的 os.open() 没有会笼罩内置函数 open()。

正在应用 os 这样的年夜型模块时内置的 dir() 以及 help() 函数十分有用:

>>> import os
>>> dir(os)
<returns a list of all module functions>
>>> help(os)
<returns an extensive manual page created from the module's docstrings>

针对一样平常的文件以及目次治理义务,:mod:shutil 模块提供了一个易于应用的初级接口:

>>> import shutil
>>> shutil.copyfile('data.db', 'archive.db')
>>> shutil.move('/build/executables', 'installdir')

文件通配符

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

>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']

饬令行参数

通用对象剧本常常挪用饬令行参数。这些饬令行参数以链表方式存储于 sys 模块的 argv 变量。例如正在饬令行中执行 "python demo.py one two three" 后能够失去如下输入后果:

>>> import sys
>>> print(sys.argv)
['demo.py', 'one', 'two', 'three']

谬误输入重定向以及终止顺序

sys 另有 stdin,stdout 以及 stderr 属性,即便正在 stdout 被重定向时,后者也能够用于显示正告以及谬误信息。

>>> sys.stderr.write('Warning, log file not found starting a new one\n')
Warning, log file not found starting a new one

年夜多剧本的定向终止都应用 "sys.exit()"。

字符串正则婚配

re模块为初级字符串解决提供了正则表白式对象。关于复杂的婚配以及解决,正则表白式提供了简约、优化的处理计划:

>>> import re
>>> re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\b[a-z]+) \1', r'\1', 
'cat in the the hat')'cat in the hat'

假如只要要简略的性能,应该起首思考字符串办法,由于它们十分简略,易于浏览以及调试:

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

数学

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

>>> import math
>>> math.cos(math.pi / 4)
0.70710678118654757>>>
 math.log(1024, 2)
 10.0

random提供了天生随机数的对象。

>>> import random
>>> random.choice(['apple', 'pear', 'banana'])
'apple'
>>> random.sample(range(100), 10)   # sampling without replacement
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>>> random.random()    # random float
0.17970987693706186
>>> random.randrange(6)    # random integer chosen from range(6)
4

拜访互联网

有几个模块用于拜访互联网和解决网络通讯协定。此中最简略的两个是用于解决从 urls 接纳的数据的 urllib.request 和用于发送电子邮件的 smtplib:

>>> from urllib.request import urlopen
>>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl'):
...     line = line.decode('utf-8')  # Decoding the binary data to text
....     if 'EST' in line or 'EDT' in line:  # look for Eastern Time
...         print(line)
<BR>Nov. 25, 09:43:32 PM EST
>>> import smtplib
>>> server = smtplib.SMTP('localhost')
>>> server.sendmail('soothsayer@example.org', 'jcaesar@example.org',
... """To: jcaesar@example.org
... From: soothsayer@example.org
...
... Beware the Ides of March.
... """)
>>> server.quit()

留意第二个例子需求内陆有一个正在运转的邮件效劳器。

日期以及工夫

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.'
>>> # dates support calendar arithmetic
>>> birthday = date(1964, 7, 31)
>>> age = now - birthday
>>> age.days
14368

数据紧缩

如下模块间接支持通用的数据打包以及紧缩格局: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

功能怀抱

有些用户对理解处理同一成绩的没有同办法之间的功能差别很感兴味。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 模块提供了针对更年夜代码块的工夫怀抱对象。

测试模块

开发高品质软件的办法之一是为每个函数开发测试代码,而且正在开发进程中常常进行测试

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()   # 主动验证嵌入测试

unittest模块没有像 doctest模块那末容易应用,不外它能够正在一个自力的文件里提供一个更片面的测试集:

import unittestclass TestStatisticalFunctions(unittest.TestCase):

    def test_average(self):
        self.assertEqual(average([20, 30, 70]), 40.0)
        self.assertEqual(round(average([1, 5, 7]), 1), 4.3)
        self.assertRaises(ZeroDivisionError, average, [])
        self.assertRaises(TypeError, average, 20, 30, 70)unittest.main() # Calling from the co妹妹and line invokes all tests

以上就是python规范库有哪些的具体内容,更多请存眷资源魔其它相干文章!

标签: 标准库 Python python教程 python编程 python使用问题

抱歉,评论功能暂时关闭!