python标准库概览

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

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值