又过了遍官方文档,收录总结一下,用于以后复习。
os模块提供了一系列的接口同操作系统交互。
os.getcwd() #获得当前路径 os.chdir() #更改当前路径 os.system('ls') #执行命令shutil模块提供许多易于使用的文件和文件集合上的高级操作
shutil.copyfile(src, dst) shutil.move(src, dst) #以递归方式移动文件或目录(src)到另一个位置(dst)。glob模块提供了一个函数用于在目录中以通配符搜索文件,并生成匹配的文件列表。
glob.glob('*.py')执行脚本输入的参数,保存在
sys.argvargparse模块提供更强大、 更灵活的命令参数处理功能。
sys模块还具有stdin、stdout和stderr属性。stderr可用于显示警告和错误信息,即使标准输出已经被重定向了。
sys.stderr.write('Warning');re模块提供了正则表达式工具
re.findall(pattern, string, flags=0) re.sub(pattern, repl, string, count=0, flags=0) #实现相对复杂的字符串替换处理,然后返回被替换后的字符串只是简单功能时,可直接使用字符串方法。
'tea for too'.replace('too', 'two')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))有很多模块可以使用,最简单的是 urllib2模块从url获取网页数据, smtplib模块发送电子邮件。
import urllib2 for line in urllib2.urlopen('http://blog.junjietang.cn/'): print line发送邮件可看之前写的,进程执行结束发送邮件通知的文章。
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.'数据打包和常见格式的压缩都直接支持, 这些模块包括: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校验 1914569509timeit模块提供了简单方法来测试少量代码。
>>> 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模块提供了针对更大代码块的时间度量工具。
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