前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python--import---语法-

Python--import---语法-

作者头像
py3study
发布2020-01-07 16:28:06
8230
发布2020-01-07 16:28:06
举报
文章被收录于专栏:python3python3

--import指令

前文提到 import 指令是用来载入 module 的,如果需要,也会顺道做编译的事。但 import 指令,还会做一件重要的事情就是把 import 的那个 module 的代码执行一遍,这件事情很重要。Python 是解释执行的,连函数都是执行的时候才创建的。如果不把那个 module 的代码执行一遍,那么 module 里面的函数都没法创建,更别提去调用这些函数了。

执行代码的另外一个重要作用,就是在这个 module 的命名空间中,创建模块内定义的函数和各种对象的符号名称(也就是变量名),并将其绑定到对象上,这样其他 module 才能通过变量名来引用这些对象。

Python 虚拟机还会将已经 import 过的 module 缓存起来,放到一个全局 module 集合 sys.modules 中。这样做有一个好处,即如果程序的在另一个地方再次 import 这个模块,Python 虚拟机只需要将全局 module 集合中缓存的那个 module 对象返回即可。

你现在一定想到了 sys.modules 是一个 dict 对象,可以通过 type(sys.modules) 来验证

demo.py 的第一行代码是 import foo。import 指令用来载入一个模块,另外一个载入模块的方法是 from xx import yy。用 from 语句的好处是,可以只复制需要的符号变量到当前的命名空间中(关于命名空间将在后面介绍)。

前文提到,当已经存在 pyc 文件时,就可以直接载入而省去编译过程。但是代码文件的内容会更新,如何保证更新后能重新编译而不入旧的 pyc 文件呢。答案就在 pyc 文件中存储的创建时间信息。当执行 import 指令的时候,如果已存在 pyc 文件,Python 会检查创建时间是否晚于代码文件的修改时间,这样就能判断是否需要重新编译,还是直接载入了。如果不存在 pyc 文件,就会先将 py 文件编译。

--12.4-------------import------import 自定义 模块--------------------------------------------------------------------------------------------------------------------------------------

上网查了下资料和自己实验了下,有几个方法:

1.如果导入的模块和主程序在同个目录下,直接import就行了

2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__.py文件,该文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。

3.如果导入的模块是在主程序所在目录的父目录下,则要通过修改path来解决,有两种方法:

(1)通过”import sys,sys.path.append('父目录的路径')“来改变,这种方法属于一次性的,只对当前的python解释器进程有效,关掉python重启后就失效了。

(2)直接修改环境变量:  在windows中是 “ set 变量=‘路径’  ” 例如:  set PYTHONPATH=‘C:\test\...’ 查看是否设置成功用echo %PYTHONPATH%,而且进到python解释器中查看sys.path,会发现已经有了新增加的路径了。这 种方式是永久的,一次设置以后一直都有效。在linux中是 "export 变量=‘路径’ “,查看是" echo $变量 "

通过修改path是通用的方法,因为python解释器就是通过sys.path去一个地方一个地方的寻找模块的。

--python获取当前模块的名称

#!/usr/bin/env python

import sys

import os

def get_module():

    def main_module_name():

        mod = sys.modules['__main__']

        file = getattr(mod, '__file__', None)

        return file and os.path.splitext(os.path.basename(file))[0]

    def modname(fvars):

        file, name = fvars.get('__file__'), fvars.get('__name__')

        if file is None or name is None:

            return None

        if name == '__main__':

            name = main_module_name()

        return name

    module_name = modname(globals())

    # print globals()

    # print module_name

get_module()

例子

下例是个简单的模块 support.py:

support.py 模块:

def print_func( par ):

   print "Hello : ", par

   return

--import 语句--模块的引入

模块定义好后,我们可以使用 import 语句来引入模块,语法如下:

import module1[, module2[,... moduleN]

比如要引用模块 math,就可以在文件最开始的地方用 import math 来引入。在调用 math 模块中的函数时,必须这样引用:

模块名.函数名

当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。

搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support.py,需要把命令放在脚本的顶端:

test.py 文件代码:

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 导入模块

import support

# 现在可以调用模块里包含的函数了

support.print_func("Runoob")

以上实例输出结果:

Hello : Runoob

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

--From…import 语句

Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

from modname import name1[, name2[, ... nameN]]

例如,要导入模块 fib 的 fibonacci 函数,使用如下语句:

from fib import fibonacci

这个声明不会把整个 fib 模块导入到当前的命名空间中,它只会将 fib 里的 fibonacci 单个引入到执行这个声明的模块的全局符号表。

--From…import* 语句

把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

from modname import *

这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

例如我们想一次性引入 math 模块中所有的东西,语句如下:

from math import *

--搜索路径

当你导入一个模块,Python 解析器对模块位置的搜索顺序是:

1、当前目录

2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。

3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。

模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

--PYTHONPATH 变量

作为环境变量,PYTHONPATH 由装在一个列表里的许多目录组成。PYTHONPATH 的语法和 shell 变量 PATH 的一样。

在 Windows 系统,典型的 PYTHONPATH 如下:

set PYTHONPATH=c:\python27\lib;

在 UNIX 系统,典型的 PYTHONPATH 如下:

set PYTHONPATH=/usr/local/lib/python

--命名空间和作用域

变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。

一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。

每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样。

Python 会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。

因此,如果要给函数内的全局变量赋值,必须使用 global 语句。

global VarName 的表达式会告诉 Python, VarName 是一个全局变量,这样 Python 就不会在局部命名空间里寻找这个变量了。

例如,我们在全局命名空间里定义一个变量 Money。我们再在函数内给变量 Money 赋值,然后 Python 会假定 Money 是一个局部变量。然而,我们并没有在访问前声明一个局部变量 Money,结果就是会出现一个 UnboundLocalError 的错误。取消 global 语句的注释就能解决这个问题。

#!/usr/bin/python

# -*- coding: UTF-8 -*-

Money = 2000

def AddMoney():

   # 想改正代码就取消以下注释:

   # global Money

   Money = Money + 1

print Money

AddMoney()

print Money

Tkinter     Python默认的图形界面接口。Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。

PyGTK    用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的库。

PyQt      用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是Scintillar编辑器类的Qt接口。

wxPython       GUI编程框架,熟悉MFC的人会非常喜欢,简直是同一架构(对于初学者或者对设计要求不高的用户来说,使用Boa Constructor可以方便迅速的进行wxPython的开发)

PIL          python提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。

Psyco        一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。

xmpppy       Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。

PyMedia        用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。

Pmw        Python megawidgets,Python超级GUI组件集,一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。

PyXML        用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:

xmlproc: 一个符合规范的XML解析器。Expat: 一个快速的,非验证的XML解析器。还有其他和他同级别的还有 PyHtml PySGML。

PyGame     用于多媒体开发和游戏软件开发的模块。

PyOpenGL       模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。

NumPy、NumArray、SAGE       NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的底层代码使用C来编写,所以速度的优势很明显。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代Magma, Maple, Mathematica和Matlab 这类工具。

MySQLdb     用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。

Sqlite3       用于连接sqlite数据库。

Python-ldap    提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。

smtplib    发送电子邮件。

ftplib    定义了FTP类和一些方法,用以进行客户端的ftp编程。如果想了解ftp协议的详细内容,请参考RFC959。

PyOpenCL   OpenCL的Python接口,通过该模块可以使用GPU实现并行计算。

--************************************************************************************************************************************

--12-----------Python 模块-------------xxx个能够满足所有需要的模块---明细-----------------------------------------

--************************************************************************************************************************************

很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:

比如Databases,GUIs,Images, Sound, OS interaction, Web,以及其他。

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

           模块让你能够有逻辑地组织你的 Python 代码段。

           把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

模块能定义函数,类和变量,模块里也能包含可执行的代码。

python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的。

--************************************************************************************************************************************

------python运行时服务

--************************************************************************************************************************************

import json 模块-------------提供了4个功能:   dumps、dump、loads、load------用于字符串 和 python数据类型间进行转换---------------被用类序列化或饭序列化Javascript object notation(JSON)对象。

simplejson 模块

sys 模块------包含了跟python解析器和环境相关的变量和函数。

gc 模块

inspect 模块

warnings 模块

weakref 模块

--************************************************************************************************************************************

------全部模块.Database------python数据库访问----Python 标准数据库接口为 Python DB-API,为开发人员提供了数据库应用编程接口。

--************************************************************************************************************************************

Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:

* 关系型数据库拥有共同的规范Python Database API Specification V2.0,MySQL,Oracle等都实现了此规范,然后增加自己的扩展。

import sqlite3 模块------提供了SQLite数据库访问的接口。SQLite数据库是以一个文件或内存的形式存在的自包含的关系型数据库。

import DBM-style 数据库模块------python提供了打了的modules来支持UNIX DBM-style数据库文件。dbm模块用来读取标准的UNIX-dbm数据库文件,gdbm用来读取GNU dbm数据库文件,dbhash用来读取Berkeley DB数据库文件。所有的这些模块提供了一个对象实现了基于字符串的持久化的字典,他与字典dict非常相似,但是他的keys和values都必须是字符串。

import PostgreSQL 模块------

import Mysql 模块

import MySQLdb 模块------http://sourceforge.net/projects/mysql-python

import cx_Oracle 模块------http://www.cxtools.net/default.aspx?nav=downloads

import Oracle 模块------

import PyGreSQL 模块------http://www.pygresql.org/

import pySQLite 模块------http://initd.org/tracker/pysqlite

import mSQL 模块------

import Microsoft SQL Server 2000 模块------

import Informix 模块------

import Interbase 模块------

import Sybase 模块------

import Gadfly 模块------http://gadfly.sourceforge.net/

import SQLAlchemy 模块------http://www.sqlalchemy.org/

import psycopg 模块------http://www.initd.org/pub/software/psycopg/

import kinterbasdb 模块------http://kinterbasdb.sourceforge.net/

--************************************************************************************************************************************

------数据结构--算法--代码简化

--************************************************************************************************************************************

import xdrlib 模块

import array 模块-----------array代表数组,类似与list,与list不同的是只能存储相同类型的对象。

import bisect 模块-----------是一个有序的list,其中内部使用二分法(bitsection)来实现大部分操作。

import collections 模块-----------包含了一些有用的容器的高性能实现,各种容器的抽象基类,和创建name-tuple对象的函数。例如包含了容器deque,defaultdict,namedtuple等。

import heapq 模块-----------是一个使用heap实现的带有优先级的queue。

import itertools 模块-----------包含了函数用来创建有效的iterators。所有的函数都返回iterators或者函数包含iterators(例如generators 和generators expression)。

import operator 模块-----------提供了访问python内置的操作和解析器提供的特殊方法,例如 x+y 为 add(x,y),x+=y为iadd(x,y),a % b 为mod(a,b)等等。

import abc 模块-----------

import contextlib 模块-----------

import functools 模块-----------

--************************************************************************************************************************************

------时间--日期--日历-------------------------------------------------------------------------------

--************************************************************************************************************************************

import time 模块-------------Python 日期和时间----------提供了各种时间相关的函数。常用的time.sleep()------------------------------------

import Calendar 模块------日历

import datetime 模块------提供了各种类型来表示和处理日期和时间。

import pytz 模块------

import dateutil 模块------

--************************************************************************************************************************************

------操作系统的服务--进程--线程--并行----------------------Python 多线程--------------------------------------------------------

--************************************************************************************************************************************

demo.py 这个例子并没有用到多线程,但还是有必要提一下。

在提到多线程的时候,往往要关注线程如何同步,如何访问共享资源。Python 是通过一个全局解释器锁 GIL(Global Interpreter Lock)来实现线程同步的。当 Python 程序只有单线程时,并不会启用 GIL,而当用户创建了一个 thread 时,表示要使用多线程,Python 解释器就会自动激活 GIL,并创建所需要的上下文环境和数据结构。

Python 字节码解释器的工作原理是按照指令的顺序一条一条地顺序执行,Python 内部维护着一个数值,这个数值就是 Python 内部的时钟,如果这个数值为 N,则意味着 Python 在执行了 N 条指令以后应该立即启动线程调度机制,可以通过下面的代码获取这个数值。

import sys sys.getcheckinterval() # 100

线程调度机制将会为线程分配 GIL,获取到 GIL 的线程就能开始执行,而其他线程则必须等待。由于 GIL 的存在,Python 的多线程性能十分低下,无法发挥多核 CPU 的优势,性能甚至不如单线程。因此如果你想用到多核 CPU,一个建议是使用多进程。

import multiprocessing 模块      提供通过subprocess来加载多个任务,通信,共享数据,执行各种同步操作。

import threading 模块      提供了thread类很很多的同步方法来实现多线程编程。

import thread 模块

import queue 模块      实现了各种多生产者,多消费者队列,被用来实现多线程程序的信息安全交换。

import Coroutines and Microthreading

3.6. pipes 模块

3.7. popen2 模块

import logging 模块------------灵活方便地对应用程序记录events,errors,warnings,和debuging 信息。这些log信息可以被收集,过滤,写到文件或系统log,甚至通过网络发送到远程的机器上。-----------------------------------------

import winreg 模块      用来操作windows注册表。     _winreg 模块

import subprocess 模块------包含了函数和对象来统一创建新进程,控制新进程的输入输出流,处理进程的返回

import errno 模块      定义了所有的errorcode对应的符号名字。

import mmap 模块      提供了内存映射文件对象的支持,使用内存映射文件与使用一般的文件或byte字符串相似。

import optparse 模块      更高级别来处理UNIX style的命令行选项sys.argv。

import io 模块      实现了各种IO形式和内置的open()函数。

import os 模块---操作系统相关----------------Python OS文件方法-------------------------------对通用的操作系统服务提供了可移植的(portable)的接口。os可以认为是nt和posix的抽象。nt提供windows的服务接口,posix提供UNIX(linux,mac)的服务接口。

import os.path 模块      以可移植的方式来处理路径相关的操作。

import signal 模块      用来实现信号(signal)处理,往往跟同步有关。

import fcntl 模块

import commands 模块 被用来执行简单的系统命令,命令以字符串的形式传入,且同时以字符串的形式返回命令的输出。但是此模块只在UNIX系统上可用

import msvcrt 模块

import mscrt 模块 只可以在windows系统使用,用来访问Visual C运行时库的很多有用的功能。

--************************************************************************************************************************************

------图形开发界面的库  Graphical Interface------Python 提供了多个图形开发界面的库,常用的Python GUI 库

--************************************************************************************************************************************

import wxPython 模块http://wxpython.org         wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。

import pyGtkhttp://www.pygtk.org

import pyQThttp://www.riverbankcomputing.co.uk/pyqt/

import Pmwhttp://pmw.sourceforge.net/

import Tkinter 模块http://effbot.org/zone/wck.htm -------------Python GUI编程--------tkinter 布局---------------------------------------------------------

                    Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。

                    Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。

import Tixhttp://tix.sourceforge.net/

import Jython模块   Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。

                    Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。

import requests 模块

import difflib 模块

import PIL 模块------http://www.pythonware.com/products/pil/

--************************************************************************************************************************************

------全部模块.Maths------数学------Sciences and Maths

--************************************************************************************************************************************

import scipy 模块------http://www.scipy.org/

import NumPy 模块------http://numpy.scipy.org//

import pandas 模块-----

import numarray 模块------http://www.stsci.edu/resources/software_hardware/numarray

import matplotlib 模块------http://matplotlib.sourceforge.net/

import Maths 模块------

import math 模块------math模块定义了标准的数学方法,例如cos(x),sin(x)等

import cmath 模块------复数运算

import decimal 模块------用于十进制数学计算  python中的float使用双精度的二进制浮点编码来表示的,这种编码导致了小数不能被精确的表示,例如0.1实际上内存中为0.100000000000000001,还有3*0.1 == 0.3 为False. decimal就是为了解决类似的问题的,拥有更高的精确度,能表示更大范围的数字,更精确地四舍五入。

import fractions 模块------使Python提供了分数类型的支持

import numbers 模块------定义了一个抽象基类的层次结构。定义在该模块下的类型没有一个可以被实例化。

1.class numbers.Number       Number类,数字类的root

2.class numbers.Complex       复数类,具有real、imag两个属性,还具有conjugate()方法,用于获取共轭复数。

3.class numbers.Real          实数类

4.class numbers.Rational        有理数类

5.class numbers.Integral      整数类

import random 模块------random模块提供了各种方法用来产生随机数

whrandom 模块

---通讯

MSN Messengermsnlibhttp://auriga.wearlab.de/~alb/msnlib/

MSN Messengerpymsnhttp://telepathy.freedesktop.org/wiki/Pymsn

MSN Messengermsnphttp://msnp.sourceforge.net/

NetworkTwistedhttp://twistedmatrix.com/

gdmodulehttp://newcenturycomputers.net/projects/gdmodule.html

VideoCapturehttp://videocapture.sourceforge.net/

Python是一种通用语言。它被解释运行,是动态类型语言,并且非常适合交互工作和快速实现原型,然而又足够强大用来写大型应用。

--************************************************************************************************************************************

------全部模块.Games------------

--************************************************************************************************************************************

Pygamehttp://www.pygame.org/news.html

Pyglethttp://www.pyglet.org/

PySoyhttp://www.pysoy.org/

pyOpenGLhttp://pyopengl.sourceforge.net/

Jabberjabberpyhttp://jabberpy.sourceforge.net/

Webscrapehttp://zesty.ca/python/scrape.html

WebBeautiful Souphttp://crummy.com/software/BeautifulSoup

Webpythonwebhttp://www.pythonweb.org/

Webmechanizehttp://wwwsearch.sourceforge.net/mechanize/

django

pylons

zope

web.py

CherryPy

Localisationgeoname.pyhttp://www.zindep.com/blog-zindep/Geoname-python/

Serial portpySerialhttp://pyserial.sourceforge.net/

Serial portUSPPhttp://ibarona.googlepages.com/uspp

Parallel PortpyParallelhttp://pyserial.sourceforge.net/pyparallel.html

USB PortpyUSBhttp://bleyer.org/pyusb/

Windowsctypeshttp://starship.python.net/crew/theller/ctypes/

Windowspywin32http://sourceforge.net/projects/pywin32/

Windowspywinautohttp://www.openqa.org/pywinauto/

Windowspyrtfhttp://pyrtf.sourceforge.net/

Windowswmihttp://timgolden.me.uk/python/wmi.html

PDA/GSM/Mobilespymohttp://www.awaretek.com/pymo.html

PDA/GSM/MobilespyS60http://sourceforge.net/projects/pys60

GMaillibgmailhttp://libgmail.sourceforge.net/

GooglepyGooglehttp://pygoogle.sourceforge.net/

ExpectpyExpecthttp://pexpect.sourceforge.net/

WordNetpyWordNethttp://osteele.com/projects/pywordnet/

Compiler backendllvm-pyhttp://mdevan.nfshost.com/llvm-py/

3DVPythonhttp://vpython.org

pyDes      DES加密解密模块      http://twhiteman.netfirms.com/des.html

pyparsing    类似lex/yacc但更简单的词法/语法分析器       pyparsing.wikispaces.com

--import 自定义 模块--------------------------------------------------------------------------------------------------------------------------------------

--核心模块-------------------------------------------------------------------------------------------

1.2. _ _builtin_ _ 模块

1.3. exceptions 模块

1.6. stat 模块

1.7. string 模块

import sys 模块---系统相关的信息模块-----------------------------------------------

atexit 模块

1.16. types 模块

--更多标准模块-------------------------------------------------------------------------------------------

2.2. fileinput 模块

2.4. tempfile 模块

2.5. StringIO 模块

2.6. cStringIO 模块

2.8. UserDict 模块

2.9. UserList 模块

2.10. UserString 模块

traceback 模块

2.13. getopt 模块

2.14. getpass 模块

2.15. glob 模块

2.19. md5 模块

2.20. sha 模块

2.21. crypt 模块

2.22. rotor 模块

2.24. code 模块

--************************************************************************************************************************************

------string 和 text 处理

--************************************************************************************************************************************

import codecs 模块-----------被用来处理不同的字符编码与unicode text io的转化

import string 模块-----------包含大量有用的常量和函数用来处理字符串。也包含了新字符串格式的类

import struct 模块-----------被用来在python和二进制结构间实现转化

import unicodedata 模块-----------提供访问unicode字符数据库

locale 模块

ucnhash 模块

import re 模块-----------Python 正则表达式----------------用来对字符串进行正则表达式的匹配和替换-------------------------

marshal 模块

import pickle 模块-------------提供了4个功能:   dumps、dump、loads、load------用于python特有的类型 和 python的数据类型间进行转换---------被用来序列化python的对象到bytes流,从而适合存储到文件,网络传输,或数据库存储。(pickle的过程也被称serializing,marshalling或者flattening,pickle同时可以用来将bytes流反序列化为python的对象)。

import cPickle 模块

4.8. copy_reg 模块

4.9. pprint 模块

4.10. repr 模块

4.12. binhex 模块

4.13. quopri 模块

4.14. uu 模块

import base64 模块      提供了base64,base32,base16编码方式,用来实现二进制与文本间的编码和解码。base64通常用来对编码二进制数据,从而嵌入到邮件或http协议中。

import binascii 模块      提供了低级的接口来实现二进制和各种ASCII编码的转化。

--文件格式-------------------------------------------------------------------------------------------

5.2. xmllib 模块

5.3. xml.parsers.expat 模块

5.4. sgmllib 模块

5.5. htmllib 模块

5.6. htmlentitydefs 模块

5.7. formatter 模块

import ConfigParser 模块------解析模块-------------用来读写windows的ini格式的配置文件-------------------------

5.9. netrc 模块

5.10. shlex 模块

import zipfile 模块      用来处理zip格式的文件。

import gzip 模块      提供了类GzipFile,用来执行与GNUgzip程序兼容的文件的读写。

--************************************************************************************************************************************

------文件和目录处理

--************************************************************************************************************************************

import bz2 模块      用来处理以bzip2压缩算法压缩的文件。

import filecmp 模块      提供了函数来比较文件和目录。

import dircache 模块

import dircmp 模块

import cmp 模块

import cmpcache 模块

import fnmatch 模块      提供了使用UNIX shell-style的通配符来匹配文件名。这个模块只是用来匹配,使用glob可以获得匹配的文件列表。

import glob 模块      返回了某个目录下与指定的UNIX shell通配符匹配的所有文件。

import tarfile 模块      用来维护tar存档文件。tar没有压缩的功能。

import tempfile 模块      用来产生临时文件和文件名。

import zlib 模块      提供了对zlib库的压缩功能的访问。

import copy 模块      提供了对复合对象进行浅拷贝和深拷贝的功能。(list,tuple,dict,custom class)

import paramiko 模块---

import shutil 模块      提供大量的文件的高级操作。特别针对文件拷贝,删除,改名。 目录和文件操作以及压缩操作。对单个文件的操作也可参见os模块。

--邮件和新闻消息处理-------------------------------------------------------------------------------------------

6.2. rfc822 模块

6.3. mimetools 模块

6.4. MimeWriter 模块

6.5. mailbox 模块

6.6. mailcap 模块

6.7. mimetypes 模块

6.8. packmail 模块

6.9. mimify 模块

6.10. multifile 模块

--************************************************************************************************************************************

------网络协议------网络编程------套接字 sockets------web 编程------internet 数据处理和编码

--************************************************************************************************************************************

import webbrowser 模块      提供了平台独立的工具函数来使用web browser打开文档。

import wsgiref/WSGI (Python Web Server Gateway Interface).

import csv 模块      用来读写comma-separated values(CSV)文件。

import email 模块      包提供了大量的函数和对象来使用MIME标准来表示,解析和维护email消息。

import hashlib 模块      实现了各种secure hash和message digest algorithms,例如MD5和SHA1。

import htmlparser (html.parser),此模块定义了HTMLParser来解析HTML和XHTML文档。使用此类,需要定义自己的类且继承于HTMLParser。

import xml 模块      xml包提供了各种处理xml的方法。

import asynchat 模块      通过封装asyncore来简化了应用程序的网络异步处理。

import ssl 模块      被用来使用secure sockets layer(SSL)包装socket对象,从而使得实现数据加密和终端认证。python使用openssl来实现此模块。

import socketserver 模块      提供了类型简化了TCP,UDP和UNIX领域的socket server的实现。

import asyncore 模块

import socket 模块-------------Python 网络编程-----------------------------------------------------------------

import httplib 模块------端口号:80------HTTP 网页访问

import urllib 模块------端口号:80------HTTP 网页访问------包提供了高级的接口来实现与http server,ftp server和本地文件交互的client。

import xmlrpclib 模块------端口号:80------HTTP 网页访问

import nntplib 模块------端口号:119------NNTP阅读和张贴新闻文章,俗称为"帖子"

import telnetlib 模块------端口号:23------Telnet命令行

import ftplib 模块------端口号:20------FTP文件传输------实现了ftp的client端协议。此模块很少使用,因为urllib提供了更高级的接口。

import gopherlib 模块------端口号:70------Gopher信息查找

import imaplib 模块------端口号:143------IMAP4获取邮件

import poplib 模块------端口号:110------POP3接收邮件

import smtplib 模块------端口号:25------Python SMTP 发送邮件---------Simple Mail Transfer Protocol-------简单邮件传输协议-------------包含了smtp client的底层接口,用来使用smtp协议发送邮件。-----------------------

import xml 模块-------------Python XML解析-----------------------------------------------------------------

import http包 模块      包含了http client和server的实现和cookies管理的模块。

import xmlrpc 模块      被用类实现XML-RPC client。

7.3. select 模块

7.7. urlparse 模块

7.8. cookie 模块

7.9. robotparser 模块

7.19. BaseHTTPServer 模块

7.20. SimpleHTTPServer 模块

7.21. CGIHTTPServer 模块

import cgi 模块      用来实现cgi脚本,cgi程序一般地被webserver执行,用来处理用户在form中的输入,或生成一些动态的内容。当与cgi脚本有管的request被提交,webserver将cgi作为子进程执行,cgi程序通过sys.stdin或环境变量来获得输入,通过sys.stdout来输出。

--多媒体相关模块-------------------------------------------------------------------------------------------

SoundpySoundichttp://pysonic.sourceforge.net/

SoundpyMediahttp://pymedia.org/

SoundFMODhttp://www.fmod.org/

SoundpyMIDIhttp://www.cs.unc.edu/Research/assist/developer.shtml

9.2. imghdr 模块

9.3. sndhdr 模块

9.4. whatsound 模块

9.5. aifc 模块

9.6. sunau 模块

9.7. sunaudio 模块

9.8. wave 模块

9.9. audiodev 模块

9.10. winsound 模块

--cv2模块

读取摄像头

import cv2

import cv2.cv as cv

if __name__ == '__main__':

    cv.NamedWindow("camera",1)

    capture = cv.CaptureFromCAM(0)

    while True:

        img = cv.QueryFrame(capture)

        cv.ShowImage("camera",img)

        if cv.WaitKey(10) == 27:

            cv.DestroyWindow("camera")

            print 'close'

            break

--数据储存-------------------------------------------------------------------------------------------

import anydbm 模块

import whichdb 模块

import shelve 模块--------shelve也是python提供给我们的序列化工具,比pickle用起来更简单一些----------使用特殊的“shelf”对象来支持持久化对象。这个对象的行为与dict相似,但是所有的他存储的对象都使用基于hashtable的数据库(dbhash,dbm,gdbm)存储在硬盘。与dbm模块的区别是所存储的对象不仅是字符串,而且可以是任意的与pickle兼容的对象。------------

import dbhash 模块

import dbm 模块

import dumbdbm 模块

import gdbm 模块

--工具和实用程序-------------------------------------------------------------------------------------------

11.1. dis 模块

11.2. pdb 模块

11.3. bdb 模块

11.4. profile 模块

11.5. pstats 模块

11.6. tabnanny 模块

--其他模块-------------------------------------------------------------------------------------------

pwd 模块

grp 模块

nis 模块

curses 模块

termios 模块

tty 模块

resource 模块

syslog 模块

nt 模块

posix 模块

--执行支持模块-------------------------------------------------------------

dospath 模块

macpath 模块

ntpath 模块

posixpath 模块

strop 模块

imp 模块

new 模块

pre 模块

sre 模块

py_compile 模块

compileall 模块

ihooks 模块

linecache 模块

macurl2path 模块

nturl2path 模块

keyword 模块

parser 模块

symbol 模块

token 模块

tokenize 模块

--其他模块-------------------------------------------------------------

pyclbr 模块

cmd 模块------Command linecmdhttp://blog.doughellmann.com/2008/05/pymotw-cmd.html

rexec 模块

Bastion 模块

readline 模块

rlcompleter 模块

statvfs 模块

sched 模块

statcache 模块

grep 模块

util 模块

soundex 模块

timing 模块

posixfile 模块

knee 模块

tzparse 模块

regsub 模块

reconvert 模块

regex 模块

regex_syntax 模块

find 模块

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档