os模块 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import osprint (os.getcwd())os.chdir('/server/accesslogs' ) os.system('mkdir today' ) dir (os)help (os)
shutil高阶文件操作 shutil 模块提供了一系列对文件和文件集合的高阶操作。 特别是提供了一些支持文件拷贝和删除的函数。
参考:shutil — 高阶文件操作
1 2 3 4 5 import shutilshutil.copyfile('data.db' , 'archive.db' ) shutil.move('/build/executables' , 'installdir' )
文件通配符 glob模块提供了一个函数用于从目录通配符搜索中生成文件列表:
1 2 3 import globprint (glob.glob('*.py' ))
命令行参数 通用工具脚本调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。
1 2 3 import sysprint (sys.argv)
错误输出重定向和程序终止 sys 模块有 stdin,stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息。
1 2 sys.stderr.write('Warning, log file not found starting a new one\n' ) Warning, log file not found starting a new one
大多脚本的定向终止使用 sys.exit()
。
字符串正则匹配 1 2 3 4 5 6 7 8 9 10 import reprint (re.findall(r'\bf[a-z]*' , 'which foot or hand fell fastest' ))print (re.sub(r'(\b[a-z]+) \1' , r'\1' , 'cat in the the hat' ))print ('tea for too' .replace('too' , 'two' ))
数学 math模块为浮点运算提供了对底层C函数库的访问:
1 2 3 4 5 >>> import math>>> math.cos(math.pi / 4 )0.70710678118654757 >>> math.log(1024 , 2 )10.0
random提供了生成随机数的工具。
1 2 3 4 5 6 7 import randomprint (random.choice(['apple' , 'pear' , 'banana' ]))print (random.sample(range (100 ), 10 ))print (random.random())
访问互联网 urllib.request
处理从 urls 接收的数据的
smtplib
用于发送电子邮件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 >>> from urllib.request import urlopen>>> for line in urlopen('http://tycho.usno.navy.mil/cgi-bin/timer.pl' ):... line = line.decode('utf-8' ) ... if 'EST' in line or 'EDT' in line: ... 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()
日期和时间 具体参考:Python3-时间模块
1 2 3 4 5 6 7 8 9 10 11 from datetime import dateimport datetimenow = date.today() print (now)birthday = date(1964 , 7 , 31 ) age = now - birthday print (age.days)print (now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B." ))
数据压缩 zlib
支持支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile。
1 2 3 4 5 6 7 8 9 10 11 import zlibs = b'witch which has which witches wrist watch' print (len (s))t = zlib.compress(s) print (len (t))print (zlib.decompress(t))print (zlib.crc32(s))
性能度量 相对于 timeit 的细粒度,profile 和 pstats 模块提供了针对更大代码块的时间度量工具。
1 2 3 4 5 from timeit import Timerprint (Timer('t=a; a=b; b=t' , 'a=1; b=2' ).timeit())print (Timer('a,b = b,a' , 'a=1; b=2' ).timeit())
测试模块 doctest
,unittest
参考:
性能度量