python标准库概览

    xiaoxiao2025-05-05  4

    又过了遍官方文档,收录总结一下,用于以后复习。

    1.操作系统

    os模块提供了一系列的接口同操作系统交互。

    os.getcwd() #获得当前路径 os.chdir() #更改当前路径 os.system('ls') #执行命令

    shutil模块提供许多易于使用的文件和文件集合上的高级操作

    shutil.copyfile(src, dst) shutil.move(src, dst) #以递归方式移动文件或目录(src)到另一个位置(dst)。

    2.文件通配符

    glob模块提供了一个函数用于在目录中以通配符搜索文件,并生成匹配的文件列表。

    glob.glob('*.py')

    3.脚本参数

    执行脚本输入的参数,保存在

    sys.argv

    argparse模块提供更强大、 更灵活的命令参数处理功能。

    4.错误输出和终止程序

    sys模块还具有stdin、stdout和stderr属性。stderr可用于显示警告和错误信息,即使标准输出已经被重定向了。

    sys.stderr.write('Warning');

    5.字符串匹配

    re模块提供了正则表达式工具

    re.findall(pattern, string, flags=0) re.sub(pattern, repl, string, count=0, flags=0) #实现相对复杂的字符串替换处理,然后返回被替换后的字符串

    只是简单功能时,可直接使用字符串方法。

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

    6.数学计算

    math模块提供接口访问底层c函数库的浮点运算函数

    math.cos(math.pi / 4.0) math.log(1024, 2)

    random模块能产生随机数。

    random.choice(seq) # 从非空序列seq 中返回一个随机的元素。 random.sample(population, k) #从population序列中随机选择k个元素,以列表返回 random.randrange(stop) #利用range()函数,同 choice(range(start, stop, step))

    7.访问网络

    有很多模块可以使用,最简单的是 urllib2模块从url获取网页数据, smtplib模块发送电子邮件。

    import urllib2 for line in urllib2.urlopen('http://blog.junjietang.cn/'): print line

    发送邮件可看之前写的,进程执行结束发送邮件通知的文章。

    8.日期时间

    datetime 模块提供了各种对时间获取的接口。

    from datetime import date now = date.today() now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B.")#可去官网查对应格式码 #输出'07-03-16. 03 Jul 2016 is a Sunday on the 03 day of July.'

    9.数据压缩

    数据打包和常见格式的压缩都直接支持, 这些模块包括:zlib、gzip、bz2、zipfile和tarfile。

    >>> s = 'test111122222333333333344444444444444444' >>> len(s) 40 >>> t = zlib.compress(s) #压缩,s后面能跟0-9的压缩程度控制,0不压缩9最强 >>> len(t) 22 >>> zlib.decompress(t) #解压缩 'test111122222333333333344444444444444444' >>> zlib.crc32(s) #获得s的CRC校验 1914569509

    10.性能测试

    timeit模块提供了简单方法来测试少量代码。

    >>> from timeit import Timer >>> Timer('t=a; a=b; b=t', 'a=1; b=2').timeit() #第二个参数先执行,然后执行第一个参数的语句;此处要做a,b互换; timeit()参数为循环次数,默认100万次;返回时间 0.07460252239635758 >>> Timer('a,b = b,a', 'a=1; b=2').timeit() 0.04626892161963703

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

    11.质量控制

    doctest模块提供一个工具,验证内嵌到文档中的测试代码是否与文档一致。

    >>> def average(values): ... """Computes the arithmetic mean of a list of numbers. ... >>> print average([20, 30, 70]) ... 40.0 ... """ ... return sum(values, 0.0) / len(values) ... >>> import doctest >>> doctest.testmod() TestResults(failed=0, attempted=1)

    unittest模块更难使用一些,不过可以在一个独立的文件里提供一个更全面的测试集:

    >>> import unittest >>> class 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) ... with self.assertRaises(ZeroDivisionError): ... average([]) ... with self.assertRaises(TypeError): ... average(20, 30, 70) ... >>> unittest.main() . ---------------------------------------------------------------------- Ran 1 test in 0.000s OK
    转载请注明原文地址: https://ju.6miu.com/read-1298798.html
    最新回复(0)