回味Python2.7——笔记4

一、Python 标准库概览

1、操作系统接口

os 模块提供了很多与操作系统交互的函数:

>>> import os
>>> os.getcwd()      # Return the current working directory
‘C:\\Python27‘
>>> os.chdir(‘/server/accesslogs‘)   # Change current working directory
>>> os.system(‘mkdir today‘)   # Run the command mkdir in the system shell
0

在使用一些像 os 这样的大型模块时内置的 dir() 和 help() 函数非常有用:

>>> import os
>>> dir(os)
<returns a list of all module functions>
>>> help(os)
<returns an extensive manual page created from the module‘s docstrings>

针对日常的文件和目录管理任务,shutil 模块提供了一个易于使用的高级接口

>>> import shutil
>>> shutil.copyfile(‘data.db‘, ‘archive.db‘)
>>> shutil.move(‘/build/executables‘, ‘installdir‘)

2、文件通配符

glob 模块提供了一个函数用于从目录通配符搜索中生成文件列表:

>>> import glob
>>> glob.glob(‘*.py‘)
[‘primes.py‘, ‘random.py‘, ‘quote.py‘]

3、命令行参数

通用工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。例如在命令行中执行 python demo.py one two three 后可以得到以下输出结果:

>>> import sys
>>> print sys.argv
[‘demo.py‘, ‘one‘, ‘two‘, ‘three‘]

4、错误输出重定向和程序终止

sys 还有 stdin , stdout 和 stderr 属性,即使在 stdout 被重定向时,后者也可以用于显示警告和错误信息:

>>> sys.stderr.write(‘Warning, log file not found starting a new one\n‘)
Warning, log file not found starting a new one

大多脚本的定向终止都使用 sys.exit() 。

5、字符串正则匹配(re)

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‘

6、数学math

math 模块为浮点运算提供了对底层 C 函数库的访问

>>> import math
>>> math.cos(math.pi / 4.0)
0.70710678118654757
>>> math.log(1024, 2)
10.0

random 提供了生成随机数的工具:

>>> import random
>>> random.choice([‘apple‘, ‘pear‘, ‘banana‘])
‘apple‘
>>> random.sample(xrange(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

7、互联网访问

有几个模块用于访问互联网以及处理网络通信协议。其中最简单的两个是用于处理从 urls 接收的数据的 urllib2 以及用于发送电子邮件的 smtplib:

>>> from urllib2
>>> for line in urllib2.urlopen(‘http://tycho.usno.navy.mil/cgi-bin/timer.pl‘):
...     line = line.decode(‘utf-8‘)  # Decoding the binary data to text.
...     if ‘EST‘ in line or ‘EDT‘ in line:  # look for Eastern Time
...         print line

<BR>Nov. 25, 09:43:32 PM EST

>>> import smtplib
>>> server = smtplib.SMTP(‘localhost‘)
>>> server.sendmail(‘[email protected]‘, ‘[email protected]‘,
... """To: [email protected]
... From: [email protected]
...
... Beware the Ides of March.
... """)
>>> server.quit()

8、日期和时间

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(1964, 7, 31)
>>> age = now - birthday
>>> age.days
14368

9、数据压缩

以下模块直接支持通用的数据打包和压缩格式: zlibgzipbz2zipfile 以及 tarfile

10、性能度量(运行时间)

相对于 timeit 的细粒度,profile 和 pstats 模块提供了针对更大代码块的时间度量工具

>>> 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

参考:http://docs.pythontab.com/python/python2.7/stdlib.html

时间: 2024-10-13 20:18:40

回味Python2.7——笔记4的相关文章

回味Python2.7——笔记3

一.错误和异常 1.异常处理 >>> while True: ... try: ... x = int(raw_input("Please enter a number: ")) ... break ... except ValueError: ... print "Oops! That was no valid number. Try again..." ... try 语句按如下方式工作: 首先,执行 try 子句 (在 try 和 excep

回味Python2.7——笔记2

一.模块 模块是包括 Python 定义和声明的文件.文件名就是模块名加上 .py 后缀.模块的模块名(做为一个字符串)可以由全局变量 __name__ 得到. 1. 模块可以导入其他的模块. 一个(好的)习惯是将所有的 import 语句放在模块的开始(或者是脚本),这并非强制. 被导入的模块名会放入当前模块的全局符号表中. from fibo import * :这样可以导入所有除了以下划线( _ )开头的命名. 需要注意的是在实践中往往不鼓励从一个模块或包中使用 * 导入所有,因为这样会让

python2 httplib 笔记

python2  httplib 笔记 #coding=utf-8 ''' Created on 2014年9月25日 @author: cocoajin ''' import httplib,urllib base='httpbin.org' #不需要添加 "http://" con=httplib.HTTPConnection(base) ip = '/ip' con.request('GET',ip) re=con.getresponse() print re.getheader

再次回味Python2——笔记

一.基本知识 1.一个值可以同时赋给几个变量: >>> x = y = z = 0 # Zero x, y and z >>> x 0 >>> y 0 >>> z 0 2.创建复数 >>> a=1+6j >>> x=complex(1,3) # x=1+3j>>>x.real1>>>x.imag 3 3.字符串 >>> 'spam eggs' '

Effective Python2 读书笔记1

Item 2: Follow the PEP 8 Style Guide Naming Naming functions, variables, attributes lowercase_underscore protected instance attributes _leading_underscore private instance attributes __double_leading_underscore classes, exceptions CapitalizedWord mod

Effective Python2 读书笔记2

Item 14: Prefer Exceptions to Returning None Functions that returns None to indicate special meaning are error prone because None and other values (e.g., zero, the empty string) all evaluate to False in conditional expressions. Raise exceptions to in

python2 urllib 笔记

import urllib base='http://httpbin.org/' ip=base+'ip' r=urllib.urlopen(ip) print r.geturl() print r.read() #get get=base+"get" parms=urllib.urlencode({"name":"tom","age":18}) r=urllib.urlopen("%s?%s"%(get,

OpenCV学习笔记(二十):Win8.1 64位+OpenCV 2.4.9+Python2.7.9配置

OpenCV提供了Python接口,主要特性包括: 提供与OpenCV 2.x中最新的C++接口极为相似的Python接口,并且包括C++中不包括的C接口 提供对OpenCV 2.x中所有主要部件的绑定:CxCORE (almost complete), CxFLANN (complete), Cv (complete), CvAux (C++ part almost complete, C part in progress), CvVidSurv (complete), HighGui (co

【学习笔记】python2和python3的input()

python2中的input()只接受变量作为传入值,非变量内容会报错. 1 >>> user=input("Enter your name:") 2 Enter your name:Kaito 3 Traceback (most recent call last): 4 File "<stdin>", line 1, in <module> 5 File "<string>", line 1