sele 发表于 2017-4-30 12:01:17

Python Tutorial 笔记4

Standard Library
  


Library Name
Usage
Sample


os
提供一些类似于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 float
0.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()
>>> now
datetime.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.days
14368




  


  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 unittest
class 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, zipfile
class 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 finish
print('Main program waited until background was done.')



Logging
日志

import logging
logging.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 found
ERROR:root:Error occurred
CRITICAL:root:Critical error -- shutting down




Weak References
弱指针

import gc
import weakref
class 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.10
0.09999999999999995
>>> sum(*10) == Decimal('1.0')
True
>>> sum(*10) == 1.0
False
>>> getcontext().prec = 36
>>> Decimal(1) / Decimal(7)
Decimal("0.142857142857142857142857142857142857")








页: [1]
查看完整版本: Python Tutorial 笔记4