免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2860 | 回复: 0
打印 上一主题 下一主题

《python 从入门到精通》 §10 模块 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-01 07:13 |只看该作者 |倒序浏览


  Normal
  0
  
  7.8 磅
  0
  2
  
  false
  false
  false
  
   
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4



/* Style Definitions */
table.MsoNormalTable
        {mso-style-name:普通表格;
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";
        mso-ansi-language:#0400;
        mso-fareast-language:#0400;
        mso-bidi-language:#0400;}
                       
§10     模块
                           
§10.1 模块简介
              
       查找路径的设置:
       >>> import sys
>>>
sys.path.append('c:/python')
       unix只能以绝对路径或者形式添加:sys.path.expanduser('~/python').

导入只会生效一次。
要强制重新加载:
>>>
hello = reload(hello)
Hello,
world!
3.0不会再有reload功能,可以使用exec,建议最好不要涉及到reload类似的功能。
查看系统路径:
>>>
import sys, pprint
>>>
pprint.pprint(sys.path)
pprint可以很好地处理较大的数据。
模块一般放在site-packages中。
       可以修改环境变量:PYTHONPATH.--这个在我的windows好像没有找到,估计IDE有自己的设置方法。也可以在.pth文中设置的
       模块以.py结尾,windows下还可以.pyw。
       多个模块可以组合成包,它是包含__init__.py的目录。

                           
§10.2 探索模块
>>>
import copy           
查看:dir(copy
>>>
[n for n in dir(copy) if not n.startswith('_')]
['Error',
'PyStringMap', 'copy', 'deepcopy', 'dispatch_table', 'error', 'name', 't']
可以调用的查看方式:
copy.__all__

获取帮助:help(copy.copy),跟如下的效果是一样的。
查看源文件的位置:>>> print copy.__file__
C:\Python26\lib\copy.pyc
       一些python内置的库,比如sys;一些用c语言书写的库,是不能这样查看的。
                           
§10.3 标准库介绍
       sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 重要的函数有:argv,exit([arg]),modules,path,platform,stdin,stdout,stderr等。

       os 模块:这个模块中的大部分函数通过对应平台相关模块实现, 比如 posix 和 nt. os 模块会在第一次导入的时候自动加载合适的执行模块.重要的函数有environ,system,sep,pathsep,linesep,urandom(n)。
       environ用于修改环境变量;
       system执行外部程序,其他的类似命令有execv,会退出python,popen打开类似于文件的连接,不过subprocess模块集合了他们所有的功能;
       os.sep用于路径中的分隔符,unix中为斜杠,windows中是2个反斜杠。
       os.pathsep则为path路径的分隔符;
       os.linesep为行分隔符;
       urandom:返回加密的随机数
       比如打开火狐:unix中,os.system('/usr/bin/firefox');windows中os.system(r'c:\"Program Files"\"Mozilla
Firefox"\firefox.exe')。加引号是为了防止不解释空格。也可以使用windows特有的函数:os.startfile(r'c:\Program
Files\Mozilla Firefox\firefox.exe')。windows程序与os.system (or os.startfile)同时运行,UNIX中python会等待os.system完成。其实打开网页还有更好的方法:
       import webbrowser
webbrowser.open('http://www.python.org')

fileinput
模块允许你循环一个或多个文本文件的内容。重要的函数有:input([files[, inplace[,
backup]]),filename(),lineno()。filelineno(),isfirstline(),isstdin(),nextfile(),close()
       注意fileinput.lineno是多个文件累积的计数。文本文件的替换操作很简单. 只需要把 inplace 关键字参数设置为 1 , 传递给 input 函数, 该模块会帮你做好一切.
      
      
heaps(堆),对应的模块为heapq。函数有6个:heappush(heap, x),heappop(heap),heapify(heap),heapreplace(heap, x),nlargest(n,
iter),nsmallest(n, iter)。

>>>
from heapq import *
>>>
from random import shuffle
>>>
data = range(10)
>>>
shuffle(data)
>>>
heap = []
>>>
for n in data:
...
heappush(heap, n)
>>>
heap
[0, 1,
3, 6, 2, 8, 4, 7, 9, 5]
>>>
heappush(heap, 0.5)
>>>
heap
[0, 0.5,
3, 6, 1, 8, 4, 7, 9, 5, 2]

       i总大于i // 2,小于2*i and 2*i + 1).
      
       >>> heap
[0.5, 1,
5, 3, 2, 7, 9, 8, 4, 6]
>>>
heapreplace(heap, 10)
0.5
>>>
heap
[1, 2,
5, 3, 6, 7, 9, 8, 4, 10]

双端队列和其他集合:
>>>
from collections import deque
>>>
q = deque(range(5))
>>>
q.append(5)
>>>
q.appendleft(6)
>>>
q
deque([6,
0, 1, 2, 3, 4, 5])
>>>
q.pop()
5
>>>
q.popleft()
6
>>>
q.rotate(3)
>>>
q
deque([2,
3, 4, 0, 1])
>>>
q.rotate(-1)
>>>
q
deque([3,
4, 0, 1, 2])
另外还有extend和extend方法

其他模块待下次介绍。

       sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分. 重要的函数有:argv,exit([arg]),modules,path,platform,stdin,stdout,stderr等。

       os 模块:这个模块中的大部分函数通过对应平台相关模块实现, 比如 posix 和 nt. os 模块会在第一次导入的时候自动加载合适的执行模块.重要的函数有environ,system,sep,pathsep,linesep,urandom(n)。
       environ用于修改环境变量;
       system执行外部程序,其他的类似命令有execv,会退出python,popen打开类似于文件的连接,不过subprocess模块集合了他们所有的功能;
       os.sep用于路径中的分隔符,unix中为斜杠,windows中是2个反斜杠。
       os.pathsep则为path路径的分隔符;
       os.linesep为行分隔符;
       urandom:返回加密的随机数
       比如打开火狐:unix中,os.system('/usr/bin/firefox');windows中os.system(r'c:\"Program Files"\"Mozilla
Firefox"\firefox.exe')。加引号是为了防止不解释空格。也可以使用windows特有的函数:os.startfile(r'c:\Program
Files\Mozilla Firefox\firefox.exe')。windows程序与os.system (or os.startfile)同时运行,UNIX中python会等待os.system完成。其实打开网页还有更好的方法:
       import webbrowser
webbrowser.open('http://www.python.org')

fileinput
模块允许你循环一个或多个文本文件的内容。重要的函数有:input([files[, inplace[,
backup]]),filename(),lineno()。filelineno(),isfirstline(),isstdin(),nextfile(),close()
       注意fileinput.lineno是多个文件累积的计数。文本文件的替换操作很简单. 只需要把 inplace 关键字参数设置为 1 , 传递给 input 函数, 该模块会帮你做好一切.
      
      
heaps(堆),对应的模块为heapq。函数有6个:heappush(heap, x),heappop(heap),heapify(heap),heapreplace(heap, x),nlargest(n,
iter),nsmallest(n, iter)。

>>>
from heapq import *
>>>
from random import shuffle
>>>
data = range(10)
>>>
shuffle(data)
>>>
heap = []
>>>
for n in data:
...
heappush(heap, n)
>>>
heap
[0, 1,
3, 6, 2, 8, 4, 7, 9, 5]
>>>
heappush(heap, 0.5)
>>>
heap
[0, 0.5,
3, 6, 1, 8, 4, 7, 9, 5, 2]

       i总大于i // 2,小于2*i and 2*i + 1).
      
       >>> heap
[0.5, 1,
5, 3, 2, 7, 9, 8, 4, 6]
>>>
heapreplace(heap, 10)
0.5
>>>
heap
[1, 2,
5, 3, 6, 7, 9, 8, 4, 10]

双端队列和其他集合:
>>>
from collections import deque
>>>
q = deque(range(5))
>>>
q.append(5)
>>>
q.appendleft(6)
>>>
q
deque([6,
0, 1, 2, 3, 4, 5])
>>>
q.pop()
5
>>>
q.popleft()
6
>>>
q.rotate(3)
>>>
q
deque([2,
3, 4, 0, 1])
>>>
q.rotate(-1)
>>>
q
deque([3,
4, 0, 1, 2])
另外还有extend和extend方法
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21908/showart_2042546.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP