さまざまなPythonライブラリ/モジュール/ツール
さまざまなPythonライブラリ/モジュール/ツール
1 アルゴリズム
1.1 文字列処理
NS
正規表現の標準ライブラリ。
StringIO / cStringIO
ファイルの読み取りと書き込みによる文字列の操作(メモリファイルに多少似ています)。
cStringIOはC言語で実装されています,高性能を提供;そしてStringIOはPythonで実装されています,Unicode互換性を提供する。
シャルデ
chardetは、任意のテキストの文字セットエンコーディングを推測できます。エンコードタイプが不明なテキストの場合,便利になります。
chardetはモジュールとして使用できます,コマンドラインツールとしても使用できます。
コード例
import chardet
print chardet.detect(バイト)
1.2 数学
算数
名前が示すように、この標準ライブラリ,一般的に使用される数学関数をカプセル化します(抽出、索引、対数、三角関数、待って)
ランダム
名前が示すように、この標準ライブラリ,乱数の生成に使用されます
コード例
# 生成 0-100 的随机数
import random
random.seed()
random.randint(0, 100)
分数
この標準ライブラリは、有理数(分数)に関連する操作をカプセル化します。
1.3 安全
hashlib
Pythonの場合 2.5 標準ライブラリに追加されたバージョン。それを渡す,さまざまなハッシュ値を簡単に計算できます。
サポートされているハッシュアルゴリズムは:MD5 SHA1 SHA224 SHA256 SHA384 SHA512
ハッシュアルゴリズムについて,私はリテラシーについての記事を書きました(ここ)。。
コード例
# 计算字符串的 SHA1 散列值
import hashlib
sha1 = hashlib.sha1('こんにちは世界').hexdigest()
PyCrypto
このライブラリには、一般的な対称暗号化アルゴリズム(DES、AES、アイディア、待って)、公開鍵暗号化アルゴリズム(RSA、DSA、待って)、ハッシュアルゴリズム(MD5、SHA1、RIPEMD、待って)。
pyOpenSSL
OpenSSLは暗号化の分野で有名です。このライブラリはPythonを使用してOpenSSLを非常に薄くカプセル化します。
2 クロスプログラミング言語
Pythonは他のプログラミング言語と簡単に統合できます。統合後,Pythonコードで他のプログラミング言語の関数を使用できます、モジュール、図書館,とてもかっこいい!
2.1 統合C / C ++言語
ctypes
Pythonのctypes 2.5 標準ライブラリに追加されたバージョン。
それを渡す,C / C ++ダイナミックライブラリによってエクスポートされた関数を簡単に呼び出すことができます,PythonではさまざまなC / C ++データ型(ポインターなど)を使用できます。
コード例
# Linux / Unixシステムの標準C関数を呼び出す,获取当前时间 from ctypes import * libc = CDLL('libc.so.6') 時間= libc.time(なし) # 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, '文章', 'やあ'), (1, 'キャプション',なし), (1, 「フラグ」, 0) MessageBox =プロトタイプ(('MessageBoxA', windll.user32), paramflags) メッセージボックス(text = 'Hello world',フラグ= 2)
SWIG
これは非常に古いブランドです、よく知られているツール,複数の言語を置くことができます(Java、Python、NS#、ルビー、PHP、Perl、取る、行け、など)C / C ++に統合。
Cython
このツールを使用すると、Python構文で拡張モジュールコードを記述できます。,次に、Pythonコードをローカルダイナミックライブラリ(マシンコード)にコンパイルするのに役立ちます。
それでコンパイルされた拡張モジュール,そのパフォーマンスは、C / C ++で記述された拡張モジュールのパフォーマンスと同等です。。
2.2 統合されたJVMプラットフォーム
Jython
Jythonを使用すると、PythonコードをJVMで実行できます,また、他のJVM言語コード(Javaスケールなど)を呼び出すことができます
2.3 dotNetプラットフォームを統合する
IronPython
IronPythonを介して、PythonコードをdotNETプラットフォームで実行できます,また、他のdotNET言語コード(C#F#など)を呼び出すことができます
2.4 Objective-C言語を統合する
PyObjC
これは、Mac OSXのObjective-CライブラリをPythonでラップするためのものです。。
3 オペレーティングシステム関連
あなた
これは非常に基本的な標準ライブラリです,一般的なオペレーティングシステム関連の操作を提供します。
3.1 ファイルとディレクトリの操作
シャティル
OS標準ライブラリと比較して,シャットダウン標準ライブラリは、いくつかのより高度なファイルおよびディレクトリ操作を提供します(ディレクトリ再帰コピー、ディレクトリを再帰的に削除する、ディレクトリの圧縮とパッケージ化、待って)
コード例
# 递归删除某个目录
import shutil
shutil.rmtree(xxxx)
グローブ
この標準ライブラリは、ファイルの検索に使用されます(ワイルドカードがサポートされています)
コード例
# 获取当前目录所有 txt 文件
import glob
files = glob.glob('。/*。txt')
fnmatch
この標準ライブラリは、ファイル名を照合するために使用されます(ワイルドカードがサポートされています)
コード例
# 列出当前目录所有 txt 文件 import os, fnmatch for file in os.listdir('。') : fnmatch.fnmatchの場合(ファイル, '*。txt') : 印刷(ファイル)
tempfile
この標準ライブラリを使用する,一時ファイルまたは一時ディレクトリを安全に生成できます。
3.2 ローカルプロセス間通信(IPC)
サブプロセス / マルチプロセッシング
プロセス管理用の標準ライブラリ,子プロセスを開始できます,標準の入力と出力を介して子プロセスと対話します。
マルチプロセッシングはどこにありますか 2.6 標準ライブラリに追加されたバージョン。
信号
プロセス信号処理用の標準ライブラリ。
mmap
メモリマップトファイルのサポートを提供します。
コード例
# 利用 mmap 在父子进程间交换数据 import os import mmap map = mmap.mmap(-1, 13) map.write("こんにちは世界") pid = os.fork() pid ==の場合 0: # 子进程 map.seek(0) map.readlineを印刷します() map.close()
3.3 Windowsシステム関連
PyWin32
このサードパーティライブラリは、WindowsAPIとCOMAPIをカプセル化します。これにより、Python for Windowsプログラミングを簡単に使用できます(COMコンポーネントを呼び出す)、Windowsサービスの作成、待って)。
3.4 Linux / Unixシステム関連
Syslog
この標準ライブラリを介して,POSIXのsyslogサービスと簡単に対話できます。
3.5 プログラムパッケージ
PyInstaller
PyInstallerは、Pythonコードをスタンドアロンプログラムにすることができます(Python環境に依存せずに実行できます)。
ツールは複数のオペレーティングシステムをサポートします,含む:ウィンドウズ、Linux、Mac OS X、Solaris、AIX、待って。
py2exe
py2exeの機能はPyInstallerに似ています,ただし、Windowsプラットフォームのみをサポートします。
py2app
それは非常に似ています py2exe,違いは py2exe Windowsプラットフォームをサポート,と py2app Mac OSXプラットフォームをサポートする。
EasyInstall / Setuptools
このツールセットは、サードパーティライブラリの管理に役立ちます(ダウンロード、コンパイル、インストール、アップグレード、アンインストール)
4 ウェブ開発
今日のWeb開発は注目を集めています,関連するウェブを別のカテゴリに分類します。
4.1 HTTPプロトコル
httplib / httplib2 / http.request / urllib.parse
これらのライブラリは、さまざまなHTTPクライアント要求を行うことができます(GET、役職、待って)。
Python2のモジュール名はhttplibです / httplib2,Python3モジュールの名前をhttp.requestに変更します / urllib.parse
コード例
# 读取指定 URL 的网页内容
import urllib
handle = urllib.urlopen('http://www.google.com ')
ページ= handle.read()
handle.close()
4.2 Webサーバー
SimpleHTTPServer / http.server
軽量HTTPサーバーの標準ライブラリを提供する。
Python2のモジュール名はSimpleHTTPServerです,Python3モジュールの名前をhttp.serverに変更します
コード例
#一个极简单的 HTTP 服务 import SocketServer import SimpleHTTPServer PORT = 8000 Handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = SocketServer.TCPServer(('', 港), ハンドラ) 印刷 'ポートで提供', PORT httpd.serve_forever()
4.3 Web開発フレームワーク
Django
Pythonコミュニティで,Djangoは現在最も影響力のあるWeb開発フレームワークです。フレームが重い,Webサーバー開発で一般的に使用される組み込みコンポーネント。
Djangoには幅広いアプリケーションがあります,たとえば、Googleのウェブ開発プラットフォームGAEはそれをサポートしています。
Djangoは前述のJythonランタイム環境を完全にサポートしています,任意のJ2EEサーバーで実行できます。
TurboGears
もう1つの頑丈なWeb開発フレームワーク,名声はDjangoに次ぐ。
竜巻
これはFriendFeedによって開発されたWebフレームワークです。FriendFeedがFacebookに買収された後,フレームワークはオープンソースです。
フラスコ
これは非常に軽量なWebフレームワークです,しかし、スケーラビリティは非常に優れています。
コード例
# 用 Flask 写 Hello world
from flask import Flask
app = Flask(__名前__)
@ app.route("/")
def hello():
戻る "こんにちは世界!"
__name __ ==の場合 "__主要__":
app.run()
4.4 Webフロントエンド / JS統合
パジャマ / pyjs
これは、GWT(Google Web Toolkit)から移植されたサードパーティライブラリです。。PythonからJSへのコンパイルを提供します,AJAXフレームワークおよびその他の機能。 パジャマはデスクトップGUIアプリケーションの開発にも使用できます。
酔っ払い
これはPythonからJavaScriptへのコンパイルツールでもあります。
4.5 ブラウザの統合
ウェブブラウザ
現在のシステムのデフォルトブラウザを操作する,指定された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(自己) : print 'Hello world' ctxt2 = PyV8.JSContext(グローバル()) # JSコンテキストを作成する,传入 Global 类的对象 ctxt2.enter() ctxt2.eval('こんにちは()') # こんにちは() 関数
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(エーテル(dst = 'ff:ff:ff:ff:ff:ff ')/ARP(pdst = '192.168.1.0 / 24'), タイムアウト= 2)
5.1.2 トランスポート層
ソケット
Python標準ライブラリは、長い間ソケットプログラミングのサポートを提供してきました。。
この標準ライブラリは、バークレーソケットの単純なカプセル化です。,そのAPIは基本的にBSDSOCKETに1対1で対応します。
非同期
この標準ライブラリは、非同期ソケットのサポートを提供します。
asynchat
この標準ライブラリは、前述の非同期ライブラリに基づいています,高レベルの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はInternetRelayChatの略語です。。これはPythonでパッケージ化されたサードパーティのライブラリです。
5.2 エンコードとデコード
json
標準ライブラリ,JSON形式のエンコードとデコードを提供する。
JSON形式は現在Web開発で広く使用されています。
コード例
import json json.dumps([「foo」, {'バー': (「バズ」, なし, 1.0, 2)}]) # JSONエンコーディング # 次の文字列を取得します # '["foo", {"バー": ["バズ", ヌル, 1.0, 2]}]' json.loads('["foo", {"バー":["バズ", ヌル, 1.0, 2]}]') # JSONデコード # 次のオブジェクトを取得します # [u'foo ', {u'bar ': [u'baz ', なし, 1.0, 2]}]
base64
標準ライブラリ,Base16を提供する、Base32、Base64形式のエンコードとデコード。
binhex
標準ライブラリ,binhex4形式でエンコードとデコードを提供する。
uu
標準ライブラリ,uuencode形式のエンコードとデコードを提供します。
プロトコルバッファ(protobuf)
これはGoogleによって開発されたクロスランゲージライブラリです,ネットワーク伝送のためのエンコードとデコード。
その利点は:複数の言語にまたがる、ハイパフォーマンス、上位互換性、下位互換性。私は数年前にprotobufを推奨するブログ投稿を書きました(ここ)。。
5.3 Web開発フレームワーク
ツイスト
これはPythonネットワーク通信開発フレームワークです,10年以上の歴史があります,非常に有名。
そのデザインのいくつかはC ++に似ています エース フレーム。トランスポート層(TCP UDP)の開発に加えて,いくつかのアプリケーション層プロトコル(HTTP、XMPP、SSH、IRC、等)サポート。
コード例
# 簡単なエコーサービスを実装する,で監視する 12345 端口 from twisted.internet import protocol, reactor class Echo(protocol.Protocol) : def dataReceived(自己, データ) : self.transport.write(データ) クラスEchoFactory(protocol.Factory) : def buildProtocol(自己, addr) : エコーを返す() react.listenTCP(12345, EchoFactory()) react.run()
6 データベース
データベース開発を容易にするため,Pythonコミュニティは、データベースのAPI仕様を開発しました(PEP 249)。。
データベース操作を伴う限り,標準ライブラリとほとんどのサードパーティライブラリはこの仕様に従います。以下のモジュールのサンプルコードをご覧ください。
6.1 データベースミドルウェア
6.1.1 ODBC
pyODBC
pyODBCはODBCAPIをカプセル化します,さまざまなデータベースにアクセスできます(ODBCドライバーがある限り)。
コード例
# 查询某个 ODBC 数据源的某个表 import pyodbc conn = pyodbc.connect('DSN = xxx;PWD =パスワード ') カーソル= conn.cursor() cursor.execute('SELECT field1 FROM table1') Trueながら : 行= cursor.fetchone() 行でない場合 : break print(行) cursor.close() conn.close()
ceODBC
ODBCAPIをカプセル化する別のサードパーティライブラリ
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 = 'テスト', passwd = 'パスワード') カーソル= conn.cursor() cursor.execute('SELECT field1 FROM table1') Trueながら : 行= cursor.fetchone() 行でない場合 : break print(行) cursor.close() conn.close()
6.2.2 PostgreSQL
psycopg
PostgreSQLを操作するためのサードパーティライブラリ。
psycopg
PostgreSQLを操作するためのサードパーティライブラリ。
6.2.3 オラクル
cx_Oracle
オラクルのサードパーティライブラリを運用する。
6.2.4 MS SQL Server
pymssql
Microsoft SQLServerを操作するためのサードパーティライブラリ。
6.2.5 IBM DB2
ibm-db
DB2を操作するためのサードパーティライブラリ。
6.2.6 SQLite
sqlite3
Pythonのsqlite3 2.5 標準ライブラリにバージョンが追加され始めました。それを渡す,SQLiteデータベースを簡単に操作できます。
SQLiteは優れた軽量データベースです,私は数年前にそれを推薦するブログ投稿を書きました(ここ)。。
コード例
# インメモリデータベースを作成する,建表并插入记录
import sqlite3
conn = sqlite3.connect(':メモリー:')
カーソル= conn.cursor()
cursor.execute('CREATETABLE人 (名前のテキスト, 年齢int)')
cursor.execute('' 'INSERT INTO stocks VALUES (「トム」,20)'' ')
conn.commit()
conn.close()
6.2.7 バークレーDB
PyBSDDB
BerkeleyDBのサードパーティライブラリを操作する。
6.3 ORM(オブジェクトリレーショナルマッピング)
SQLAlchemy
SQLAlchemyでサポートされているデータベースは次のとおりです。:MySQL、PostgreSQL、Sqlite、オラクル、MS SQL Server、ファイヤーバード、Sybase SQL Server、Informix、待って。
コード例
# 通过对象的方式创建两张依赖关系的表 from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relation, sessionmaker Base = declarative_base() クラス映画(ベース) : __tablename__ = 'movies' id = Column(整数, primary_key = True) タイトル=列(弦(255), nullable = False) 年=列(整数) directed_by =列(整数, 外部キー('directors.id')) ディレクター=関係('監督', backref = '映画', lazy = False) def __init__(自己, title =なし, 年=なし) : self.title = title self.year = year def __repr__(自己) : '映画を返す(%r, %r, %r)' % (self.title, self.year, self.director) クラスディレクター(ベース) : __tablename__ = 'directors' id = Column(整数, primary_key = True) 名前=列(弦(50), nullable = False, unique = True) def __init__(自己, name =なし) : self.name = name def __repr__(自己) : リターン 'ディレクター(%r)' % (self.name) Base.metadata.create_all(create_engine('dbms://ユーザー:pwd @ host / dbname '))
SQLObject
SQLObjectでサポートされているデータベースは次のとおりです。:MySQL、PostgreSQL、Sqlite、MS SQL Server、ファイヤーバード、Sybase SQL Server、SAP DB、待って。
コード例
# 通过对象的方式创建表
from sqlobject import *
sqlhub.processConnection = connectionForURI('sqlite:/:メモリー:')
クラス人(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__' :
ルート= Tk()
ラベル=ラベル(ルート, text = 'Hello world')
label.pack()
root.mainloop()
7.1.2 wxWidgetsに基づく
wxWidgets C ++(GUIだけでなく)によって開発されたクロスプラットフォームフレームワークです,他の機能があります)。
wxPython
すべてのwxWidgetsPythonラッパーライブラリ,これは最も有名です。
ウリパッド(よく知られている国内のPython IDE)はwxPythonに基づいて開発されています。
コード例
# 用 wxPython 写 Hello world import wx class Frame(wx.Frame) : pass class App(wx.App) : def OnInit(自己) : self.frame =フレーム(親=なし, title = 'Hello world') self.frame.Show() self.SetTopWindow(self.frame) return True if __name__ == '__main__' : アプリ=アプリ() app.MainLoop()
PythonCard
wxWidgetsに基づく別のGUIライブラリ。
7.1.3 GTK +に基づく
GTK + フルネームは(GIMPツールキット)です,Cによって開発されたクロスプラットフォームインターフェイスコンポーネントライブラリ。
PyGTK
これはPythonによるGTKのカプセル化です。
コード例
# 用 PyGTK 写 Hello world import pygtk pygtk.require(「2.0」) import gtk class HelloWorld : def __init__(自己) : self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect('delete_event', self.delete_event) self.window.connect('破壊する', self.destroy) self.window.set_border_width(10) self.button = gtk.Button('こんにちは世界') self.button.connect(「クリック」, self.hello, なし) self.button.connect_object(「クリック」, gtk.Widget.destroy, self.window) self.window.add(self.button) self.button.show() self.window.show() def main(自己) : gtk.main() def hello(自己, ウィジェット, data =なし) : print 'Hello world' def delete_event(自己, ウィジェット, イベント, data =なし) : print 'delete event occurred' return False def destroy(自己, ウィジェット, data =なし) : 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)
ウィンドウ= QWidget()
window.resize(320, 240)
window.setWindowTitle('こんにちは世界')
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。ネイティブのWindowsGUIインターフェイスを提供できます。
IronPython
前述のIronPython。dotNETGUIインターフェースを提供できます。
7.1.7 JVMプラットフォームに基づく
Jython
前述のJython。Javaベースを提供できます スイング インターフェース。
7.1.8 他の
EasyGUI
EasyGUIこれは非常に軽量なライブラリです。他のGUIとの違いは、イベント駆動型ではないことです。。
PyGUI
PyGUIは高レベルのGUIライブラリです,最下層は個別にカプセル化されています PyWin32(Windowsプラットフォーム)、PyGTK(Linuxプラットフォーム)、PyObjC(Mac OS Xプラットフォーム)。
残念だった
クロスプラットフォームのマルチメディアフレームワークとインターフェイスライブラリ,よりまばゆいばかりのインターフェースを開発するために使用されます。
デスクトップオペレーティングシステムのサポートに加えて,Androidもサポート / iOS,マルチタッチをサポート。
OtempGUI
PyGameに基づくクロスプラットフォームのGUIライブラリ。PyGameについては以下で説明します。
7.2 チャート/レポート
matplotlib
これはよく知られているグラフィックライブラリです,主に数学関連のグラフィックを描くために使用されます。
後で言及 SciPy 統合はMATLABと同様の効果をもたらす可能性があります。効果画像は「ここ」。
Gnuplot.py
これはPythonです gnuplot パッケージ。gnuplotのレンダリングは「ここ」。
PyQtGraph
これは純粋なPythonライブラリです,PyQt4に依存 / PySide。効果画像は「ここ」。
PyX
このライブラリはTeXで使用できます / LaTeXのシームレスな統合,PostScriptへのエクスポートをサポート / PDF形式。レポート作成に適しています。効果画像は「ここ」。
チャコ
営利企業が運営する図書館です,主に2Dチャートを提供する。効果画像は「ここ」。
8 ファイル形式の処理
8.1 圧縮ファイルを処理する / パッケージファイル
8.1.1 ジップ
ZIPファイル
zip形式を処理する標準ライブラリ。
8.1.2 bzip2(bz2)
bz2
bzip2形式を処理するための標準ライブラリ。
8.1.3 gzip(gz)
gzip
gzip形式を処理するための標準ライブラリ。
zlib
gzip形式を処理するための標準ライブラリ。
8.1.4 タール
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」, 'NS', 16)
pdf.cell(40, 10, 'こんにちは世界')
pdf.output('test.pdf', 'NS')
# 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', 'NS')
pyPdf / PyPDF2
pyPdfはアップグレードおよび保守されなくなりました。PyPDF2はpyPdfのフォークであり、新しい機能を追加し続けています。
ファイル属性の抽出に加えて,ドキュメントを分割/マージすることもできます,ドキュメントの暗号化/復号化。
PDFMiner
PDFファイルの属性と各ページのテキストを抽出できます,HTML形式へのコンテンツの出力をサポート。
8.5 Officeドキュメントの操作
8.5.1 Word(doc、docx)
PyWin32
前述のPyWin32。それはに基づくことができます と Officeドキュメントを操作する,Wordを含む(Officeはローカルにインストールする必要があります)。
8.5.2 Excel(xls、xlsx)
pyExcelerator
ライブラリは、Office Excel(97/2000 / XP / 2003)およびOpenOfficeCalcドキュメントをサポートできます。。外部ソフトウェアに依存する必要はありません。
PyWin32
前述のPyWin32。それはに基づくことができます と Officeドキュメントを操作する,Excelを含む(Officeはローカルにインストールする必要があります)。
8.5.3 パワーポイント(ppt、pptx)
python-pptx
このライブラリは、pptx(Open XML PowerPoint)形式のドキュメントを生成するために使用できます。
PyWin32
前述のPyWin32。それはに基づくことができます と 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 =範囲(10000000) c = [] 範囲内の私のために(len(A)) : c。追加(A[私] + b[私]) # 以下は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(ジャストインタイムコンパイル)とサンドボックステクノロジーをサポートしています,CPythonよりも高速に実行できます。