Python 基础 - Day 5 Learning Note - 模块 之 介绍篇

定义



模块(module)支持从逻辑上组织Python代码,本质就是.py结尾的python文件(e.g.文件名:test.py; 模块名:test),目的是实现某项功能。将其他模块属性附加到你的模块中的操作叫导入(import)。

模块分为三类:标准库、开源模块(open source module)和自定义模块。

包(package)是一个有层次的文件目录结构, 定义了一个由模块和子包组成的python应用程序执行环境。和模块及类一样,也使用句点属性标识来访问他们的元素。使用标准的import和from-import语句导入。

导入模块


导入常用语法

模块导入本质就是一个路径搜索的过程。 即在文件系统“预定义区域”查找你所需要的模块文件。 预定义区域是python搜索路径的集合 - 列表。

# 方法一
import mudule_name  #导入整个模块,载入时执行

import module_name as MA   # 扩张 as 

# 方法二
from module_name import name1   # 导入指定模块属性

from module_name import name1 as n1 # 扩张 as  

#特别注意fe
from . import test1  # 相对导入,自当前目录导入test1

from module_name import*   # 不建议使用,非良好编程风格,很可能覆盖当前名称空间中现有的名字。

#!usr/bin/envpython
#-*-coding:utf-8-*-

importsys,os

print(sys.path)#返回为列表,包含模块库的路径

x=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(x)#将指定含有自定义的模块存入模块库路径列表中

将自定义模块添加到路径搜索区域中

import语句和from-import语句的区别

在import语句下,调用模块属性 需要 使用属性/句点属性标识 (如 module_name.logger() 或 os.path.abspath())的方式。 import语句的本质是将 模块中所有的代码 赋值给 模块名

而from-import语句是 copy了模块中指定属性的代码并在当前文件下执行。所以,在from-import语句下,不需要用句点属性标识,直接可以调用函数或者类 (logger())。 在效率上,由于运行方式的不同, from-import语句比import语句的速度更快。

标准库的分类



标准库就其大致用途可分为四类:data persistence and exchange, in-memory data structure, file access, and text process tools。以下是python module of the week 的详细分类

 Categories  Module name   Brief 
Built-in objects  exceptions   built-in error classes (自动导入)
String service       codes   string encoding and decoding
 difflib  working with text
 String IO and cStringIO  work with text buffers using file-like API (read, write. etc.)
 re  regular expression
 struct  working with Binary Data 
 textwrap  formatting text paragraphs 
Data type            array  sequence of fixed-type data
 datetime  date/time value manupulation
 calendar  work with dates
 collections  container data types
 heapq  in-place heap sort algorithm
 bisect  maintain lists in sorted order
 sched generic event scheduler
 Queue a thread-safe FIFO implementation (comparied with built-in function such as pop() and insert())
 weakref garbage-collectable references to objects 
 copy duplicate objects  
 pprint pretty-print data structure 
Numeric & mathematical module        decimal fixed and floating point math 
 fractions rational numbers 
 functools toos for manipultaing functions 
 itertools iterator functions for efficient looping 
 math mathematical function 
 operator functional interface to built-in operators 
 random pseudorandom number generator  
Internet data handling     base64 encode binary data into ASCII characters 
 json JavaScript Object Notation Serializer 
 mailbox access and manipulate emial achives 
 mhlib work with MH mailboxes 
File formats     cvs  comma-separated value files 
 ConfigParser work with configuration files
 robotparser internet spider access control 
Cryptographic services    hashlib cryptographic hashes and messary digests  
 hmac cryptographic signature and verification of messages 
File and Directory access           os.path  platform-independent manipulation of file names 
 fileinput  process lines from input streams 
 filecmp  compare files 
 tempfile create temporary filesystem resources 
 glob filename pattern matching 
 fnmatch compare filenames against Unix-style glob partterns 
 linecache read text files efficiently 
 shutil high-level file opeerations 
 dircache cache directory listings 
Data compression and archiving       bz2 bzip2 compression 
 gzip read and write GNU zip files 
 tarfile tar archive access 
 zipfile read and write ZIP archive files 
 zlib low-level access to GNUzlib compression library 
Data persistence     anydbm access to DBM-style database
 dbhash DBM-style API for the BSD database library
 dbm simple database interface 
 dumbdbm portable DBM implementation
 gdbm GNU‘s version of the dbm library
 pickle and cPickle python object serialization 
 shelve persistent storage of arbitrary Python objects
 whichdb identify DBM-style database formats
 sqlite3 embedded relational database
Generic operating system service    os portable access to operating system specific features
 time functions for manipulating clock time 
 getopt command line option parsing
 optparse command line option parser to replace getopt
 argparse command line option and argument parsing  
 logging report status, error, and informational messages
 getpass prompt the user for a password without echoing
 platform access system version information
Optional operating system services   threading manage concurrent threads
 mmap memory-map files
 multiprocessing  manage processes like threads 
 readline interface to the GNU readline library
 rlcompleter adds tab-completion to the interactive interpreter
Unix-specific services  commands run external shell commands
 grp Unix group database
 pipes Unix shell command pipeline templates
 pwd Unix password database
 resource system resource management 
Interprocess communication and networking  asynchat  asynchronous protocol handler
 asyncore asynchronous I/O handler
 signal receive notification of asynchronous system events
 subprocess work with additional processes

Internet protocols and support

网络协议及支持

 BaseHTTPServer base classes for implementing web servers
 cgitb detailed traceback reports
 Cookies HTTP Cookies
 imaplib IMAP4 client library
 SimpleXMLRPCServer implemens an XML-RPC server
 smtpd Sample SMTP Servers
 smtplib Simple Mail Transfer Protocol client
 socket Network Communication
 select  wait for I/O Efficiently
 SocketServer Creating network servers
 urllib simple interface for network reserouce access
 urllib2 Library for opening URLs
 urlparse split URL into component pieces
 uuid universally unique identifiers
 webbrowser Displays web pages
 xmlrpclib client-side liabrary for XML-RPC communication 
Structured markup processing tools  xml.etree.ElementTree XML manipulation API

Internationalization

国际化

 gettext Message Catalogs
 locale POSIX cultural localization API

Program frameworks

程序框架

 cmd create line-oriented command processes
 shlex lexical analysis of shell-style syntaxes

Development Tools

开发工具

 doctest Testing through documentation
 pydoc Online help for python modules
 unittest Automated testing framework
 pdb Interative Debugger
Debugging and Profiling  profile, cProfile, and pstats  Performance analysis of Python programs
 timeit Time the execution of samll bits of Python code
 trace Follow Python statements as they are executed 
Python Runtime Services  abc  Abstract Base Classes
 atexit Call functions when a program is closing down 
 contextlib context manager utilities
 gc Garbage Collector
 inspect Inspect live objects
 site Site-wide configuration
 sys System-specific Configuration
 sysconfig Interpreter Compile-time Configuration
 traceback Extract, format, and print exceptions and stack traces
 warnings Non-fatal alerts
Python Language Services  compileall Byte-compile Source Files 
   dis Python Bytecode Disassembler
   pyclbr Python class browser support
   tabnanny Indentation validator
Importing Modules  imp Interfact to module import mechanism
   pkclbr Package Utilities
   zipimport Load Python code from inside ZIP archives
Miscelaneous  EasyDialogs  Carbon dialogs for Mac OS X
   plistlib Manipulate OS X property list files

Source: python module of the week,  Douh Hellmann

Reference

http://www.cnblogs.com/wupeiqi/articles/4963027.html

http://www.cnblogs.com/alex3714/articles/5161349.html

module of the week, 全部标准库模块的释义,非常有用。

时间: 2024-10-08 20:18:12

Python 基础 - Day 5 Learning Note - 模块 之 介绍篇的相关文章

Python 基础 - Day 4 Learning Note - 模块 - Json & Pickle

Json和Pickle的区别 在python的序列化的两个模块中,json模块是用于字符串和python数据类型间进行转换:另一个pickle模块,是用于python特有的类型(所有数据类型和python的数据类型间进行转换.json是可以在不同语言之间交换数据的,而pickle只在python之间使用.json只能序列化最基本的数据类型,json只能把常用的数据类型序列化(列表.字典.列表.字符串.数字.),比如日期格式.类对象!josn就不行了.而pickle可以序列化所有的数据类型,包括类

Python 基础 - Day 5 Learning Note - 模块 之 标准库:random 模块

常用操作 import random # 随机浮点数 print(random.random()) # 0.1706000097536472 # 返回生成一个0到1的随机浮点数: 0<= n <= 1 print(random.uniform(1,8)) # 4.060336609768256 # 函数语法: random.uniform(a,b) # 返回生成以a为下限,b为上限的随机浮点数: a<=n<=b # 随机整数 print(random.randint(1,10))

Python 基础 - Day 5 Learning Note - 模块 之 标准库:RE (14) 正则表达式

RE 模块介绍 正则表达式(RE)用作于处理文件和数据,为高级文本模式匹配,以及搜索-替代等功能提供基础. 实质就是一些由字符和特殊符号(元字符:metacharacter)组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配一个有相似特征的字符串的集合,也能按某种模式匹配一系列有相似特征的字符串,我们称为模式匹配 (patten match). 在python中, pattern-match 有两种主要方式完成: 搜索(search)和匹配(match). 搜索,在字符串

Python 基础 - Day 5 Learning Note - 模块 之 标准库:xml (9)

xml 模块介绍 和json一样,适用于不同语言及程序的数据交换的协议.但是json用起来更简单,并有代替xml的趋势. 现在多数金融数据提供方(e.g. bloombegy)还在用xml的方式. 在python中,生成和解析 XML 文件 用 导入 xml.etree.ElementTree 模块 xml文件的格式 xml的格式如下,就是通过<>节点来区别数据结构的: xml的格式 常用操作 读取xml import xml.etree.ElementTree as ET tree = ET

Python 基础 - Day 5 Learning Note - 模块 之 标准库:datetime (2)

介绍 Datetime 模块是time模块的再次封装,提供了更多的接口.主要是日期和时间的解析,格式化及运算. 其他关于时间的模块: time - basic calendar - basic pytz - 关于time zones dateutil - extension of datetime 常用操作 Times类 import datetime t = datetime.time(1,2,3) # 01:02:03 print(t) # 语法: datetime.time(hour,mi

Python 基础 - Day 5 Learning Note - 模块 之 标准库:ConfigParser (10)

configparser模块介绍 用于生成和修改常见的配置文档(configuration file), 配置文件格式 用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合.它包括所有用户专用的配置设置,如程序项目.屏幕颜色.网络连接.打印机连接.鼠标设置及窗口的大小和位置等.一般格式包括ini,cfg,xml, config等. 配置文件的格式如下 [DEFAULT] ServerAliveInterval = 45 Compression

Python 基础 - Day 5 Learning Note - 模块 之 标准库:time (1)

时间的表示方式 1. 间戳 timestamp:  从1970年1月1日 00:00:00 开始按秒计算的偏移量,以float数据类型呈现. 返回时间戳的函数有: time() , clock() 等. 2. sruct_time 元祖方式: 返回struct_time元祖的函数包括 gmtime(), localtime(), strptim(). 返回的元祖包括以下9个元素. 索引 INDEX 属性 ATTRIBUTE 值 VALUES 0 tm_year  比如2011 1 tm_mon

Python 基础 - Day 4 Learning Note - Generator 生成器

列表生成器/列表解析 list comprehension 简单灵活地创建列表,通常和lambda(), map(), filter() 一起使用 通过列表生成式, 直接创建列表.但是,收到内容限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问几个元素,那其他的就白占空间.列表生成器能够一边循环一边计算,大大节省大量的空间.是生成器的一种. 只有调用,才能生成. 不支持切片操作,只能通过__next()___一个个取数字. 基本语法

Python 基础 - Day 4 Learning Note - Decorator 装饰器

装饰器的知识准备 函数,函数参数 作用域: 全局变量,局部变量 变量解析规则:LEGB法则 - 假设嵌套函数(第二层函数),解析器查找内部函数的变量的顺序如下. 在任何一层先找到了符合要求的变量,则不再向外查找.如果没有,则抛出N Local - 本地函数内部,通过任何方式赋值的,而且没有被global关键字声明为全局变量的变量 Enclosing - 直接该内部函数的外围空间(即它的上层函数)的本地作用域.多层嵌套,则有内而外逐层查找,直至最外层的函数 Global - 全局空间(模块encl