亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

python開源項目及示例代碼

2024-06-28 16:01:12
字體:
來源:轉載
供稿:網友

1 算法

1.1 字符串處理

re

正則表達式的標準庫。

StringIO / cStringIO

以讀寫文件的方式來操作字符串(有點類似于內存文件)。

cStringIO 是 C 語言實現的,提供高性能;而 StringIO 是 Python 實現的,提供 Unicode 兼容性。

chardet

chardet 可以猜測任意一段文本的字符集編碼。對于編碼類型未知的文本,它會很有用。

chardet 既可以作為模塊來使用,也可以作為命令行工具來使用。

代碼示例

import chardet PRint chardet.detect(bytes) 

1.2 數學類

math

這個標準庫顧名思義,封裝了常用的數學函數(開方、指數、對數、三角函數、等)

random

這個標準庫顧名思義,是用來進行隨機數生成的

代碼示例

# 生成 0-100 的隨機數 import random random.seed() random.randint(0, 100)

fractions

這個標準庫封裝了跟有理數(分數)相關的運算

1.3 安全類

hashlib

在 Python 2.5 版本加入到標準庫中。通過它,你可以很方便地計算各種散列值。

它支持的哈希算法有:md5 SHA1 SHA224 SHA256 SHA384 SHA512

關于散列算法,俺寫過一篇掃盲(在這里)。

代碼示例

# 計算字符串的 SHA1 散列值 import hashlib sha1 = hashlib.sha1('Hello world').hexdigest()

PyCrypto

這個庫包含了常見的對稱加密算法(DES、AES、IDEA、等)、公鑰加密算法(RSA、DSA、等)、散列算法(MD5、SHA1、RipEMD、等)。

pyOpenSSL

OpenSSL 在加密領域可是大名鼎鼎。這個庫使用 Python 對 OpenSSL 進行很薄的封裝。

 


 

2 跨編程語言

Python 可以很容易地跟其它編程語言整合。整合之后,就可以在 Python 代碼中使用其它編程語言的函數、模塊、庫,非常爽!

2.1 整合 C / C++ 語言

ctypes

ctypes 在 Python 2.5 版本加入到標準庫中。

通過它,你可以很方便地調用 C/C++ 動態庫導出的函數,可以在 Python 中使用各種 C/C++ 的數據類型(比如指針)。

代碼示例

# 調用 linux/Unix 系統的標準 C 函數,獲取當前時間 from ctypes import * libc = CDLL('libc.so.6') time = libc.time(None)  # 調用 Windows 系統 API,彈出消息提示框 from ctypes import c_int, WINFUNCTYPE, windll from ctypes.wintypes import HWND, LPCSTR, UINT prototype = WINFUNCTYPE(c_int, HWND, LPCSTR, LPCSTR, UINT) paramflags = (1, 'hwnd', 0), (1, 'text', 'Hi'), (1, 'caption', None), (1, 'flags', 0) MessageBox = prototype(('MessageBoxA', windll.user32), paramflags) MessageBox(text='Hello world',flags=2)

SWIG

這是一個很老牌的、有名氣的工具,它可以把多種語言(java、Python、C#、Ruby、php、Perl、Lua、Go、等)整合到 C/C++ 中。

Cython

這個工具可以讓你用 Python 的語法寫擴展模塊的代碼,然后它幫你把 Python 代碼編譯為本地動態庫(機器碼)。

用它編譯出來的擴展模塊,其性能跟 C/C++ 編寫的擴展模塊相當。

2.2 整合 JVM 平臺

Jython

通過 Jython 可以讓 Python 代碼運行在 JVM 上,并且可以調用其它的 JVM 語言的代碼(比如 Java Scale)

2.3 整合 dotNet 平臺

IronPython

通過 IronPython 可以讓 Python 代碼運行在 dotNET 平臺上,并且可以調用其它的 dotNET 語言的代碼(比如 C# F#)

2.4 整合 Objective-C 語言

PyObjC

這是用 Python 封裝 Mac OS X 上的 Objective-C 庫。

 


 

3 操作系統相關

os

這是一個非?;镜臉藴蕩?,提供了常見的操作系統相關操作。

3.1 文件和目錄操作

shutil

相對于 os 標準庫,shutil 標準庫提供了一些比較高級的文件和目錄操作(目錄遞歸復制、目錄遞歸刪除、目錄壓縮打包、等)

代碼示例

# 遞歸刪除某個目錄 import shutil shutil.rmtree(xxxx)

glob

這個標準庫用于查找文件(支持通配符)

代碼示例

# 獲取當前目錄所有 txt 文件 import glob files = glob.glob('./*.txt')

fnmatch

這個標準庫用于匹配文件名(支持通配符)

代碼示例

# 列出當前目錄所有 txt 文件 import os, fnmatch for file in os.listdir('.') :     if fnmatch.fnmatch(file, '*.txt') :         print(file)

tempfile

使用這個標準庫,可以安全地生成臨時文件或臨時目錄。

3.2 本地進程間通信(IPC)

subprocess / multiprocessing

用于進程管理的標準庫,可以啟動子進程,通過標準輸入輸出跟子進程交互。

其中 multiprocessing 是 2.6 版本加入到標準庫的。

signal

用于進程信號處理的標準庫。

mmap

提供了內存映射文件的支持。

代碼示例

# 利用 mmap 在父子進程間交換數據 import os import mmap  map = mmap.mmap(-1, 13) map.write("Hello world")  pid = os.fork()  if pid == 0: # 子進程     map.seek(0)     print map.readline()     map.close()

3.3 Windows 系統相關

PyWin32

這個第三方庫封裝了 Windows API 及 COM API。通過它可以方便地用 Python 進行 Windows 編程(調用 COM 組件、編寫 Windows 服務、等)。

3.4 Linux / Unix 系統相關

syslog

通過這個標準庫,可以很方便地跟 POSIX 的 syslog 服務進行交互。

3.5 程序打包

PyInstaller

PyInstaller 可以把你的 Python 代碼制作成獨立運行的程序(不依賴 Python 環境就可以運行)。

該工具支持多種操作系統,包括:Windows、Linux、Mac OS X、Solaris、AIX、等。

py2exe

py2exe 的功能類似 PyInstaller,但只支持 Windows 平臺。

py2app

它很類似于 py2exe,差別在于 py2exe 支持 Windows 平臺,而 py2app 支持 Mac OS X 平臺。

EasyInstall / Setuptools

這套工具可以幫助你進行第三方庫的管理(下載、編譯、安裝、升級、卸載)

 


 

4 Web 開發

如今 Web 開發很火,俺把 Web 相關的單獨分一類。

4.1 HTTP 協議

httplib / httplib2 / http.request / urllib.parse

這幾個庫可以進行各種 HTTP 客戶端請求(GET、POST、等)。

Python2 的模塊名叫 httplib / httplib2,到 Python3 模塊名改為 http.request / urllib.parse

代碼示例

# 讀取指定 URL 的網頁內容 import urllib handle = urllib.urlopen('http://www.google.com') page = handle.read() handle.close()

4.2 Web Server

SimpleHTTPServer / http.server

提供輕量級 HTTP Server 的標準庫。

Python2 的模塊名叫 SimpleHTTPServer,到 Python3 模塊名改為 http.server

代碼示例

#一個極簡單的 HTTP 服務 import SocketServer import SimpleHTTPServer  PORT = 8000 Handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = SocketServer.TCPServer(('', PORT), Handler) print 'serving at port', PORT httpd.serve_forever()

4.3 Web 開發框架

Django

在 Python 社區,Django 是目前最有影響力的 Web 開發框架。該框架很重型,內置了 Web 服務端開發常用的組件。

Django 應用范圍很廣,比如 Google 的 Web 開發平臺 GAE 就支持它。

Django 完全支持前面提到的 Jython 運行環境,可以運行在任何 J2EE 服務器上。

TurboGears

又一個重型的 Web 開發框架,名氣僅次于 Django。

Tornado

這是 FriendFeed 開發的 Web 框架。FriendFeed 被 Facebook 收購之后,該框架被開源。

Flask

這是一個很輕量級的 Web 框架,但是擴展性很好。

代碼示例

# 用 Flask 寫 Hello world from flask import Flask app = Flask(__name__)   @app.route("/") def hello():     return "Hello World!"   if __name__ == "__main__":     app.run()

4.4 Web前端 / JS整合

Pyjamas / pyjs

這是從 GWT(Google Web Toolkit)移植的第三方庫。提供了 Python 到 JS 的編譯,Ajax 框架等功能。 Pyjamas 甚至能用來開發桌面 GUI 應用。

pyjaco

這也是一個 Python 到 Javascript 的編譯工具。

4.5 瀏覽器整合

webbrowser

操縱當前系統的默認瀏覽器,訪問指定 URL 的頁面。

代碼示例

# 用默認瀏覽器打開 Google 主頁 import webbrowser webbrowser.open('http://www.google.com')

pyv8

v8 是 Google 開發的 JavaScript 解釋引擎。這是對 v8 引擎的 Python 封裝。

代碼示例

import PyV8  ctxt1 = PyV8.JSContext() ctxt1.enter() ctxt1.eval('1+2')  # 對 JS 表達式求值  class Global(PyV8.JSClass) :  # 定義一個兼容 JS 的類     def hello(self) :         print 'Hello world'  ctxt2 = PyV8.JSContext(Global()) # 創建一個 JS 上下文,傳入 Global 類的對象 ctxt2.enter()                     ctxt2.eval('hello()')  # 調用 hello() 函數

PyWebKitGtk

WebKitGtk 是一個基于 WebKit 的 Web 渲染引擎。這是 WebKitGtk 的 Python 封裝。

 


 

5 網絡編程

5.1 標準協議

5.1.1 鏈路層 / 網絡層

Scapy

這是一個底層的網絡庫,可以在不同協議層次構造網絡數據包(包括鏈路層、網絡層、傳輸層),還支持 Sniffer 抓包。

搞網絡安全的網友應該會喜歡這個庫。

代碼示例

# 傳統的 ping 掃描(網絡層) ans,unans = sr(IP(dst='192.168.1.1-254')/ICMP())  # 局域網內的 ARP 掃描(鏈路層) ans,unans = srp(Ether(dst='ff:ff:ff:ff:ff:ff')/ARP(pdst='192.168.1.0/24'), timeout=2)

5.1.2 傳輸層

socket

Python 標準庫很早就提供了對 socket 編程的支持。

這個標準庫是對伯克利套接字進行簡單的封裝,其 API 基本上跟 BSD SOCKET 一一對應。

asyncore

這個標準庫提供了異步 SOCKET 的支持。

asynchat

這個標準庫基于上述的 asyncore,提供更高層的 API,簡化異步通訊編程。

5.1.3 應用層

ftplib

封裝 FTP 協議(文件傳輸)的標準庫

smtplib

封裝 SMTP 協議(郵件發送)的標準庫

imaplib

封裝 IMAP 協議(郵件接收)的標準庫

poplib

封裝 POP3 協議(郵件接收)的標準庫

PycURL

cURL 是一個功能很強的網絡庫/網絡工具,支持 N 多應用層協議。這是用 Python 封裝的第三方庫。

關于 cURL,俺前幾年寫過一篇博文推薦它(在這里)。

jabber.py

Jabber(又稱 XMPP)是IM(即時通信)協議的標準。這是用 Python 封裝的第三方庫。

irclib

IRC 是 Internet Relay Chat 的縮寫。這是用 Python 封裝的第三方庫。

5.2 編碼和解碼

json

標準庫,提供 JSON 格式的編碼和解碼。

JSON 格式如今在 Web 開發中廣為應用。

代碼示例

import json  json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}]) # JSON 編碼 # 得到如下字符串 # '["foo", {"bar": ["baz", null, 1.0, 2]}]'  json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]') # JSON 解碼 # 得到如下對象 # [u'foo', {u'bar': [u'baz', None, 1.0, 2]}]

base64

標準庫,提供 Base16、Base32、Base64 格式的編碼和解碼。

binhex

標準庫,提供 binhex4 格式的編碼和解碼。

uu

標準庫,提供 uuencode 格式的編碼和解碼。

Protocol Buffers(protobuf)

這是 Google 開發的一個跨語言的庫,用于網絡傳輸的編碼和解碼。

它的優點是:跨多種語言、高性能、向前兼容、向后兼容。俺前幾年寫過一篇博文推薦 protobuf(在這里)。

5.3 網絡開發框架

Twisted

這是一個基于 Python 網絡通訊開發框架,有十多年歷史,名氣很大。

它的某些設計類似于 C++ 的 ACE 框架。除了能用來進行傳輸層(TCP UDP)的開發,還提供了若干應用層協議(HTTP、XMPP、SSH、IRC、等)的支持。

代碼示例

# 實現一個簡單的 Echo 服務,監聽在 12345 端口 from twisted.internet import protocol, reactor  class Echo(protocol.Protocol) :     def dataReceived(self, data) :         self.transport.write(data)  class EchoFactory(protocol.Factory) :     def buildProtocol(self, addr) :         return Echo()  reactor.listenTCP(12345, EchoFactory()) reactor.run()

 


 

6 數據庫

為了便于數據庫開發,Python 社區制定了數據庫的 API 規范(PEP 249)。

只要是涉及到數據庫操作,標準庫和大部分第三方庫都會遵循該規范。請看如下幾個模塊的示例代碼。

6.1 數據庫中間件

6.1.1 ODBC

pyODBC

pyODBC 封裝了 ODBC API,通過它可以訪問各種數據庫(只要有 ODBC 驅動即可)。

代碼示例

# 查詢某個 ODBC 數據源的某個表 import pyodbc conn = pyodbc.connect('DSN=xxx;PWD=passWord') cursor = conn.cursor() cursor.execute('SELECT field1 FROM table1') while True :     row = cursor.fetchone()     if not row :         break     print(row) cursor.close() conn.close()

ceODBC

又一個封裝 ODBC API 的第三方庫

6.1.2 JDBC

Jython

Jython 前面提到過。它可以基于 JDBC 操作數據庫。

6.1.3 ADO / ADO.NET

PyWin32

PyWin32 前面提到過。它可以基于 ADO 操作數據庫。

IronPython

IronPython 前面提到過。它可以基于 ADO.NET 操作數據庫。

6.2 特定數據庫

6.2.1 MySQL

MySQL for Python

操作 MySQL 的第三方庫。

代碼示例

# 查詢某個 MySQL 數據庫的某個表 import MySQLdb conn = MySQLdb.connect(db='test', passwd='password') cursor = conn.cursor() cursor.execute('SELECT field1 FROM table1') while True :     row = cursor.fetchone()     if not row :         break     print(row) cursor.close() conn.close()

6.2.2 PostgreSQL

psycopg

操作 PostgreSQL 的第三方庫。

psycopg

操作 PostgreSQL 的第三方庫。

6.2.3 Oracle

cx_Oracle

操作 Oracle 的第三方庫。

6.2.4 MS SQL Server

pymssql

操作微軟 SQL Server 的第三方庫。

6.2.5 IBM DB2

ibm-db

操作 DB2 的第三方庫。

6.2.6 SQLite

sqlite3

sqlite3 從 Python 2.5 版本開始加入到標準庫中。通過它,你可以很方便地操作 SQLite 數據庫。

SQLite 是一個很優秀的輕量級數據庫,俺前幾年寫過一篇博文推薦它(在這里)。

代碼示例

# 創建一個內存數據庫,建表并插入記錄 import sqlite3 conn = sqlite3.connect(':memory:') cursor = conn.cursor() cursor.execute('CREATE TABLE person (name text, age int)') cursor.execute('''INSERT INTO stocks VALUES ('TOM',20)''') conn.commit() conn.close()

6.2.7 Berkeley DB

PyBSDDB

操作 Berkeley DB 的第三方庫。

6.3 ORM(Object-Relational Mapping)

SQLAlchemy

SQLAlchemy 支持的數據庫有:MySQL、PostgreSQL、Sqlite、Oracle、MS SQL Server、Firebird、Sybase SQL Server、Informix、等。

代碼示例

# 通過對象的方式創建兩張依賴關系的表 from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relation, sessionmaker   Base = declarative_base()   class Movie(Base) :     __tablename__ = 'movies'       id = Column(Integer, primary_key=True)     title = Column(String(255), nullable=False)     year = Column(Integer)     directed_by = Column(Integer, ForeignKey('directors.id'))     director = relation('Director', backref='movies', lazy=False)       def __init__(self, title=None, year=None) :         self.title = title         self.year = year      def __repr__(self) :         return 'Movie(%r, %r, %r)' % (self.title, self.year, self.director)   class Director(Base) :     __tablename__ = 'directors'       id = Column(Integer, primary_key=True)     name = Column(String(50), nullable=False, unique=True)       def __init__(self, name=None) :         self.name = name       def __repr__(self) :         return 'Director(%r)' % (self.name)   Base.metadata.create_all(create_engine('dbms://user:pwd@host/dbname'))

SQLObject

SQLObject 支持的數據庫有:MySQL、PostgreSQL、Sqlite、MS SQL Server、Firebird、Sybase SQL Server、SAP DB、等。

代碼示例

# 通過對象的方式創建表 from sqlobject import * sqlhub.processConnection = connectionForURI('sqlite:/:memory:')  class Person(SQLObject) :     first_name = StringCol()     last_name = StringCol()  Person.createTable()

 


 

7 桌面 GUI 開發

7.1 GUI 框架 / 組件庫

7.1.1 基于 Tk

Tk 是一個跨平臺的界面組件庫。

Tkinter / tkinter

這是 Python 內置的標準庫,封裝了 Tcl/Tk 界面庫。

Python2 的模塊名叫 Tkinter,到 Python3 模塊名改為 tkinter

代碼示例

# 用 Tkinter 寫 Hello world from Tkinter import *  if __name__ == '__main__' :     root = Tk()     label = Label(root, text='Hello world')     label.pack()     root.mainloop()

7.1.2 基于 wxWidgets

wxWidgets 是 C++ 開發的跨平臺框架(不僅包括 GUI,還有其它功能)。

wxPython

在所有的 wxWidgets 的 Python 封裝庫中,這個是名氣最大的。

Ulipad(知名的國產的 Python IDE)就是基于 wxPython 開發的。

代碼示例

# 用 wxPython 寫 Hello world import wx  class Frame(wx.Frame) :     pass  class App(wx.App) :     def OnInit(self) :         self.frame = Frame(parent=None, title='Hello world')         self.frame.Show()         self.SetTopWindow(self.frame)         return True  if __name__ == '__main__' :     app = App()     app.MainLoop()

PythonCard

又一個基于 wxWidgets 的 GUI 庫。

7.1.3 基于 GTK+

GTK+ 全稱是(GIMP Toolkit),由 C 開發的跨平臺界面組件庫。

PyGTK

這是 Python 對 GTK 的封裝。

代碼示例

# 用 PyGTK 寫 Hello world import pygtk pygtk.require('2.0') import gtk  class HelloWorld :     def __init__(self) :         self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)         self.window.connect('delete_event', self.delete_event)         self.window.connect('destroy', self.destroy)         self.window.set_border_width(10)          self.button = gtk.Button('Hello world')         self.button.connect('clicked', self.hello, None)         self.button.connect_object('clicked', gtk.Widget.destroy, self.window)         self.window.add(self.button)          self.button.show()         self.window.show()      def main(self) :         gtk.main()      def hello(self, widget, data=None) :         print 'Hello world'      def delete_event(self, widget, event, data=None) :         print 'delete event occurred'         return False      def destroy(self, widget, data=None) :         gtk.main_quit()  if __name__ == '__main__' :     hello = HelloWorld()     hello.main()

7.1.4 基于 Qt

Qt 是 C++ 開發的跨平臺框架(不僅包括 GUI,還有其它功能)。

PyQt

這是 Python 對 Qt 的封裝。

代碼示例

# 用 pyQt 寫 Hello world import sys from PyQt4.QtGui import *  if __name__ == '__main__' :     app = Qapplication(sys.argv)     window = QWidget()      window.resize(320, 240)     window.setWindowTitle('Hello world')     window.show()     sys.exit(app.exec_())

PySide

這也是 Python 對 Qt 的封裝。

7.1.5 基于 FLTK

FLTK 全稱是( Fast Light Tool Kit),由 C++ 開發的跨平臺、輕量級界面組件庫。

PyFLTK

這是 Python 對 FLTK 的封裝。

7.1.6 基于 Windows 平臺

PyWin32

PyWin32 前面提到過。它可以提供原生的 Windows GUI 界面。

IronPython

IronPython 前面提到過。它可以提供 dotNET 的 GUI 界面。

7.1.7 基于 JVM 平臺

Jython

Jython 前面提到過。它可以提供基于 Java 的 Swing 界面。

7.1.8 其它

EasyGUI

EasyGUI 這是一個很輕量級的庫。跟其它 GUI 不同之處在于——沒有事件驅動。

PyGUI

PyGUI 是一個更高層的 GUI 庫,底層分別封裝了 PyWin32(Windows 平臺)、PyGTK(Linux 平臺)、PyObjC(Mac OS X 平臺)。

Kivy

跨平臺的多媒體框架和界面庫,用來開發比較炫的界面。

除了支持桌面操作系統,還支持 Android / iOS,支持多點觸摸。

OcempGUI

基于 PyGame 的一個跨平臺 GUI 庫。PyGame 下面會提到。

7.2 圖表/報表

matplotlib

這是一個有名的圖形庫,主要用來繪制數學相關的圖形。

跟后面提到的 SciPy 整合可以起到類似 MATLAB 的效果。效果圖在“這里”。

Gnuplot.py

這是 Python 對 gnuplot 的封裝。gnuplot 的效果圖在“這里”。

PyQtGraph

這是一個純 Python 的庫,依賴于 PyQt4 / PySide。效果圖在“這里”。

PyX

這個庫可以跟 TeX / LaTeX 無縫整合,支持導出為 PostScript / PDF 格式。適合用來制作報表。效果圖在“這里”。

Chaco

這是一個商業公司維護的庫,主要提供2維圖表。效果圖在“這里”。

 


 

8 處理文件格式

8.1 處理壓縮文件 / 打包文件

8.1.1 zip

zipfile

處理 zip 格式的標準庫。

8.1.2 bzip2(bz2)

bz2

處理 bzip2 格式的標準庫。

8.1.3 gzip(gz)

gzip

處理 gzip 格式的標準庫。

zlib

處理 gzip 格式的標準庫。

8.1.4 tar

tarfile

處理 tar 格式的標準庫。

8.1.5 7zip(7z)

PyLZMA

處理 7zip 格式的第三方庫。

8.1.6 rar

rarfile

處理 rar 格式的第三方庫。

8.1.7 msi

msilib

處理 msi 格式的標準庫,從 Python 2.5 版本開始提供。

8.2 處理標記語言

8.2.1 xml

xml.dom / xml.miniDom / xml.etree.ElementTree

用 DOM(Document Object Model)方式處理 XML 文件的標準庫。

xml.sax / xml.parsers.expat

用 SAX(Simple API for XML)方式處理 XML 文件的標準庫。

lxml

著名的 C 語言庫 libxml 和 libxslt 的 Python 封裝。

功能很強,支持 XPath 1.0、XSLT 1.0、擴展 EXSLT、等。還可以用來解析 HTML 格式。

8.2.2 HTML

HTMLParser

以回調方式解析 HTML/XHTML 文件內容的標準庫。

8.3 處理圖片

Python Imaging Library (PIL)

這是一個很有名氣的 Python 圖像處理庫,支持常見圖像文件格式(BMP、JPG、GIF、PNG、等),可以對圖像進行各種常見操作(格式轉換、旋轉、縮放、剪切、等)。

代碼示例

# 旋轉某圖片并顯示 from PIL import Image im = Image.open('xxx.jpg') im = im.rotate(90) im.show()

8.4 處理 PDF

pyfpdf

這是 FPDF 的 Python 移植庫,用來生成 PDF 文檔。

支持的功能比較全(嵌入字體、嵌入圖片),文檔也比較詳細。

代碼示例

# 這是個簡單 Hello World 示例 from fpdf import FPDF  pdf = FPDF() pdf.add_page() pdf.set_font('Arial', 'B', 16) pdf.cell(40, 10, 'Hello World') pdf.output('test.pdf', 'F')
# 支持寫入 HTML 語法。目前支持幾種常見的 HTML tag from pyfpdf import FPDF, HTMLMixin  class MyFPDF(FPDF, HTMLMixin) :     pass                      pdf = MyFPDF() pdf.add_page() pdf.write_html(html) pdf.output('test.pdf', 'F')

pyPdf / PyPDF2

pyPdf 目前已經不繼續升級維護了。PyPDF2 是 pyPdf 的 fork 并繼續增加新功能。

除了可以提取文件屬性,還可以切分/合并文檔,加密/解密文檔。

PDFMiner

可以提取 PDF 文件屬性以及每頁的文本,支持把內容輸出為 HTML 格式。

8.5 處理 Office 文檔

8.5.1 Word(doc、docx)

PyWin32

PyWin32 前面提到過。它可以基于 COM 操作 Office 文檔,包括 Word(本地需要安裝 Office)。

8.5.2 Excel(xls、xlsx)

pyExcelerator

該庫可以支持 Office Excel(97/2000/XP/2003)以及 OpenOffice Calc 的文檔。無需依賴外部軟件。

PyWin32

PyWin32 前面提到過。它可以基于 COM 操作 Office 文檔,包括 Excel(本地需要安裝 Office)。

8.5.3 Power Point(PPT、pptx)

python-pptx

該庫可以用來生成 pptx(Open XML Powerpoint)格式的文檔。

PyWin32

PyWin32 前面提到過。它可以基于 COM 操作 Office 文檔,包括 Excel(本地需要安裝 Office)。

8.6 處理 CHM

PyCHM

這是基于 chmlib 的 Python 封裝庫??梢蕴崛?CHM 文件的屬性以及每個頁面的內容。

8.7 處理 RTF

PyRTF

這個 Python 庫可以用來處理 RTF(富文本格式)文檔。

 


 

9 游戲開發

PyGame

跨平臺的 Python 第三方庫,用來輔助游戲開發的,名氣非常大。

PyOpenGL

封裝 OpenGL 的 Python 第三方庫。

Python-Ogre

封裝 OGRE(3D 渲染引擎)的 Python 第三方庫。

 


 

10 數值計算 / 科學計算

NumPy

NumPy 提供了功能強大、性能很高的數值數組,可以用來進行各種數值計算(包括矩陣運算)。

代碼示例

# 以下是傳統 Python 寫法,冗長且速度較慢 a = range(10000000) b = range(10000000) c = [] for i in range(len(a)) :     c.append(a[i] + b[i])  # 以下是 NumPy 的寫法,簡潔且速度飛快 import numpy as np a = np.arange(10000000) b = np.arange(10000000) c = a + b

SciPy

SciPy 依賴 NumPy 提供的多維數組。相比 NumPy,SciPy 提供了更高層的數學運算模塊(統計、線性代數、積分、常微分方程求解、傅立葉變換、信號處理、等),被廣泛用于科研和工程領域。

11 其它

一些不方便歸類的,暫時放到這里。

PyPy

這是一個用 Python 寫的 Python 解釋器(有點繞口令)。

PyPy 支持 JIT(Just-in-time compilation)和沙箱技術,可做到比 CPython 更快的運行速度。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久噜噜噜久久| 国产精品ⅴa在线观看h| 日韩不卡在线观看| 九九九久久久久久| 国产精品99久久久久久www| 日本在线观看天堂男亚洲| 亚洲欧美国产日韩中文字幕| 亚洲国产婷婷香蕉久久久久久| 国产欧美久久一区二区| 91精品国产91久久久久福利| 久久久久久久久久久人体| 久久精品视频在线观看| 韩国三级电影久久久久久| 国产精品爱久久久久久久| 国产日韩在线观看av| 国产丝袜视频一区| 日韩在线视频二区| 亚洲日本欧美日韩高观看| 国产91在线播放九色快色| 欧美精品videofree1080p| 日韩精品免费在线播放| 欧美国产日本高清在线| 国语自产在线不卡| 亚洲精品v天堂中文字幕| 国产偷亚洲偷欧美偷精品| 国产亚洲欧美日韩一区二区| 久久九九全国免费精品观看| 欧美午夜xxx| 91牛牛免费视频| 综合136福利视频在线| 日韩免费观看高清| 精品国内自产拍在线观看| 国产欧美精品在线播放| 亚洲va男人天堂| 亚洲a级在线观看| 亚洲精品久久久久中文字幕欢迎你| 久久久久久久影院| 欧美日韩亚洲视频一区| 欧美成人黄色小视频| 亚洲一区av在线播放| 欧美激情性做爰免费视频| 精品国产自在精品国产浪潮| 国产一区二区日韩精品欧美精品| 国产一区香蕉久久| 日本精品久久久| 国产精品一区二区三| 成人国产在线视频| 久久久在线观看| 欧美日韩国产在线看| 国产91网红主播在线观看| 国产精品免费久久久| 国产97在线|亚洲| 中文字幕日韩欧美精品在线观看| 亚洲天堂av综合网| 精品国产鲁一鲁一区二区张丽| 欧美一级电影免费在线观看| 欧美精品在线观看| 国产美女精品视频免费观看| 欧美性猛交xxxx免费看久久久| 日韩精品高清在线观看| 亚洲色图50p| 91av视频导航| 久久影院中文字幕| 伊人伊成久久人综合网小说| 91av视频在线观看| 日韩激情第一页| 日韩欧美aaa| 欧美电影免费观看电视剧大全| 国产一区二区丝袜高跟鞋图片| 亚洲欧美资源在线| 全色精品综合影院| 中文字幕亚洲欧美日韩2019| 欧美人在线视频| 久久69精品久久久久久国产越南| 亚洲已满18点击进入在线看片| 久久久国产精品x99av| 91精品免费久久久久久久久| 亚洲夜晚福利在线观看| 色综合久综合久久综合久鬼88| 日韩av中文字幕在线| 久久亚洲春色中文字幕| 欧美激情亚洲自拍| 亚洲国产精品久久久| 欧美激情久久久久| 亚洲欧美www| 欧美激情视频在线观看| 日韩欧美中文在线| 91综合免费在线| 亚洲电影免费在线观看| 亚洲护士老师的毛茸茸最新章节| 在线观看国产成人av片| 在线观看欧美日韩| 一区二区三区国产在线观看| 色樱桃影院亚洲精品影院| 日本不卡视频在线播放| 日韩精品免费在线播放| 最近中文字幕mv在线一区二区三区四区| 美日韩精品视频免费看| 久久综合电影一区| 欧美精品在线第一页| 日韩成人中文字幕在线观看| 欧美噜噜久久久xxx| 精品视频在线播放免| 国产亚洲人成网站在线观看| 国产精品美女久久久免费| 欧美亚洲国产精品| 国产精品一区二区三| 狠狠久久五月精品中文字幕| 久久久久久国产三级电影| 国产一区二区三区直播精品电影| 国产精品手机播放| 欧美日韩国内自拍| 中文字幕国产精品| 国产日韩换脸av一区在线观看| 欧美极品美女电影一区| 亚洲欧洲第一视频| 国产一区二区三区在线观看网站| 国产精品极品美女在线观看免费| 色香阁99久久精品久久久| 中文字幕一区电影| 日韩精品在线观看视频| 久久夜色精品亚洲噜噜国产mv| 亚洲第一页中文字幕| 欧美电影在线观看完整版| 亚洲女人天堂成人av在线| 欧美日韩中文字幕| 久久久久久久久久国产精品| 欧美精品成人91久久久久久久| 久久久久国产一区二区三区| 久久精品91久久久久久再现| 亚洲少妇中文在线| 亚洲白虎美女被爆操| 亚洲欧洲av一区二区| 久久久久国产视频| 国产综合久久久久久| 午夜免费在线观看精品视频| 97高清免费视频| 97久久久免费福利网址| 国产精品永久免费视频| 欧美又大又粗又长| 欧美精品福利在线| 亚洲第一av网| 亚洲日本中文字幕免费在线不卡| 亚洲国产天堂久久国产91| 国产精品av电影| 久久影视电视剧凤归四时歌| 久久综合五月天| 久久人人爽人人| 国产精品一区二区电影| 日韩视频欧美视频| 91免费视频国产| 久久99青青精品免费观看| 伊人精品在线观看| 性色av一区二区三区红粉影视| 色婷婷综合久久久久中文字幕1| 色综合天天狠天天透天天伊人| 中文字幕日本精品| 国产精品女主播| 国产欧美欧洲在线观看| 亚洲精品国产精品自产a区红杏吧| 国产999在线| 国产欧美精品一区二区| 福利精品视频在线| 最近2019中文字幕一页二页|