Python Tutorial 笔记4
Standard LibraryLibrary 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]