- ankyhe
- 等级:
- 性别:
- 文章: 80
- 积分: 540
- 来自: 北京
|
发表时间:2009-03-01
最后修改:2009-03-02
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[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
>>> re.sub(r'(\b[a-z]+) \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
[30, 83, 16, 4, 8, 81, 41, 50, 18, 33]
>>> 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([20, 30, 70]), 40.0)
self.assertEqual(round(average([1, 5, 7]), 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([Decimal('0.1')]*10) == Decimal('1.0')
True
>>> sum([0.1]*10) == 1.0
False
>>> getcontext().prec = 36
>>> Decimal(1) / Decimal(7)
Decimal("0.142857142857142857142857142857142857")
|
|
|
|
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|