さまざまな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よりも高速に実行できます。

返信を残します