码迷,mamicode.com
首页 > 编程语言 > 详细

回味Python2.7——笔记4

时间:2017-07-24 01:31:14      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:zlib   简单   时间   文件通配符   字符串处理   shutil   python2.7   change   directory   

一、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 modules 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(soothsayer@example.org, jcaesar@example.org,
... """To: jcaesar@example.org
... From: soothsayer@example.org
...
... 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

回味Python2.7——笔记4

标签:zlib   简单   时间   文件通配符   字符串处理   shutil   python2.7   change   directory   

原文地址:http://www.cnblogs.com/lovephysics/p/7226687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!