ankyhe 发表于 2013-1-28 19:35:51

Python Tutorial 笔记4

Standard Library

Library NameUsageSampleos提供一些类似于Shell的操作>>> import os>>> os.system('time 0:02')0>>> os.getcwd()      # Return the current working directory'C:\\Python30'>>> os.chdir('/server/accesslogs') 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
getopt
optparse
输入参数 re正则表达式 >>> import re>>> re.findall(r'\bf*', 'which foot or hand fell fastest')['foot', 'fell', 'fastest']>>> re.sub(r'(\b+) \1', r'\1', 'cat in the the hat')'cat in the hat' random随机函数>>> import random>>> random.choice(['apple', 'pear', 'banana'])'apple'>>> random.sample(range(100), 10)   # sampling without replacement>>> random.random()    # random float0.17970987693706186>>> random.randrange(6)    # random integer chosen from range(6)4 datetime日期时间# dates are easily constructed and formatted>>> from datetime import date>>> now = date.today()>>> nowdatetime.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(2005, 3, 6)>>> age = now - birthday>>> age.days14368
zlib
gzip
bz2         
tarfile
zipfile   
压缩解压缩   >>> import zlib>>> s = 'witch which has which witches wrist watch'>>> len(s)41>>> t = zlib.compress(s)>>> len(t)37>>> zlib.decompress(t)'witch which has which witches wrist watch'>>> zlib.crc32(s)226805979 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 unittest单元测试 import unittestclass TestStatisticalFunctions(unittest.TestCase):    def test_average(self):      self.assertEqual(average(), 40.0)      self.assertEqual(round(average(), 1), 4.3)      self.assertRaises(ZeroDivisionError, average, [])      self.assertRaises(TypeError, average, 20, 30, 70)unittest.main() # Calling from the command line invokes all tests Template模板替换>>> t = Template('${village} folk send $$10 to $cause')>>> t.safe_substitute(village='nottingham', cause='the ditch fund')'village folk send $10 to the ditch fund' MultiThread多线程import threading, zipfileclass AsyncZip(threading.Thread):    def __init__(self, infile, outfile):      threading.Thread.__init__(self)      self.infile = infile      self.outfile = outfile    def run(self):      f = zipfile.ZipFile(self.outfile, 'w', zipfile.ZIP_DEFLATED)      f.write(self.infile)      f.close()      print('Finished background zip of:', self.infile)background = AsyncZip('mydata.txt', 'myarchive.zip')background.start()print('The main program continues to run in foreground.')background.join()    # Wait for the background task to finishprint('Main program waited until background was done.') Logging日志import logginglogging.debug('Debugging information')logging.info('Informational message')logging.warning('Warning:config file %s not found', 'server.conf')logging.error('Error occurred')logging.critical('Critical error -- shutting down')WARNING:root:Warning:config file server.conf not foundERROR:root:Error occurredCRITICAL:root:Critical error -- shutting down Weak References弱指针import gcimport weakrefclass Value:    def __init__(self, value=0):      self.value = value    def __repr__(self):      return str(self.value)if __name__ == '__main__':    d = {}    v = Value(10)    d['myvalue'] = v    del v    gc.collect()    print(d['myvalue'])    e = weakref.WeakValueDictionary()    v = Value(11)    e['myvalue'] = v    del v    gc.collect()    print(e['myvalue']) array
deque
bisect
heapq
容器 decimal精确计算>>> Decimal('1.00') % Decimal('.10')Decimal("0.00")>>> 1.00 % 0.100.09999999999999995>>> sum(*10) == Decimal('1.0')True>>> sum(*10) == 1.0False>>> getcontext().prec = 36>>> Decimal(1) / Decimal(7)Decimal("0.142857142857142857142857142857142857")
页: [1]
查看完整版本: Python Tutorial 笔记4