Python–import—語法-
- 2020 年 1 月 7 日
- 筆記
–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:python27lib;
在 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 模組