Pythonの標準ライブラリとは
Pythonの標準ライブラリとしては、機械学習で用いられるNumPyやPandasがよく知られていますが、他にもよく利用される標準ライブラリが数多くあります。標準ライブラリとは、Pythonに最初からインストールされているライブラリのセットです。
標準ライブラリは、Pythonプログラミングを始める際に最初に学ぶべきライブラリの1つであり、ファイル操作や日付時刻の処理、ネットワーク通信など様々な機能があり、プログラミングを効率的に行うことができます。
標準ライブラリの特徴
Pythonの標準ライブラリには以下のような特徴があり、利用することで様々なメリットが得られます。
■ 豊富な機能 ファイル操作や日付時刻の処理、ネットワーク通信、数学演算、正規表現処理など、様々な機能を提供しています。
■ インストール不要 Pythonをインストールすると標準ライブラリも自動的にインストールされるため、必要なライブラリはすぐに利用できます。
■ 高信頼性 Pythonの公式ライブラリであるため、高い信頼性と安定性を備えています。
■ 無料で利用可能 標準ライブラリは無料で利用でき、Pythonインストール時に同梱されています。使い方はimportステートメントでライブラリをインポートし、インポートしたライブラリの関数やクラスを使用して、特定の機能を実行するだけです。
【参考】:Python 標準ライブラリ | Python 3.12.4 ドキュメント
モジュールとライブラリ
モジュールはライブラリの部品であり、関数やクラスなどのプログラム部品をまとめたファイルのことです。拡張子は「.py」です。プログラムを整理し、再利用性を高めるために用いられます。
特徴としては、単独で利用でき、モジュール内で関数やクラスを定義することでプログラムを構造的に整理できます。例えるなら、 モジュールはネジや歯車などの部品であり、ライブラリはドライバーやレンチなどが入った工具箱です。
ライブラリとフレームワーク
Pythonのライブラリとフレームワークはどちらも開発を効率化するツールですが、その役割は異なります。
ライブラリは、特定の機能を提供するコードの集まりです。例えば、数値計算用のNumPyやデータ分析用のPandasなどがあります。これらのライブラリをコードに組み込むことで、複雑な処理を簡単に実装できます。
一方、フレームワークはアプリケーション全体の構造を提供するものであり、DjangoやFlaskなどがあります。フレームワークは開発者がアプリケーションのロジックに集中できるように、ルーティングやテンプレート、データベースとの接続などの基本的な部分をあらかじめ提供します。
標準ライブラリの機能と利用法
ここでは標準ライブラリの代表的な機能を解説し、どのような利用法があるのかについて紹介します。
標準ライブラリの代表的な機能
Pythonの標準ライブラリにはどのような機能があるのか確認しておきましょう。主に以下のような機能が挙げられます。
■ ファイル操作 ファイルの読み書きやディレクトリの作成・削除、ファイルの移動・コピー、ファイルパスの操作などの機能があり、例としてはCSVファイルを読み込んでデータ分析を行うことができます。
■ 数値計算 基本的な算術演算 (+, -, *, /)や、三角関数、統計関数、乱数生成などの機能を持ちます。例としては、株価データを分析して将来予想を行います。
■ 文字列操作 文字列の連結、文字列の検索・置換、文字列の大小変換、などの機能を持ちます。例としては、Webスクレイピングで、Webサイトから情報を抽出するといったことができます。
■ 日付時刻処理 日付・時刻の取得や日付・時刻の書式変換、日付・時刻の演算などが行えます。例としては顧客管理システムで、顧客の誕生日から年齢を計算する場合に利用します。
■ システムとの連携 コマンドの実行、環境変数の取得、標準入力・出力の操作などの機能を持ちます。例としては、システム管理ツールで、サーバの状態を監視する際に利用します。
■ ネットワーク通信 Webサイトへのアクセス、メールの送信、ファイルのダウンロードなどを行う機能を持っています。例としては、チャットボットの作成やオンラインゲームなどに利用できます。
標準ライブラリはどこにある?
Pythonの標準ライブラリは、Pythonをインストールしたディレクトリの「Lib」ディレクトリ(フォルダ)にあります。標準ライブラリのファイルがある場所は、print(json)でファイルの場所を確認することもできます。コマンドラインから次のコマンドを入力します。
python -c "import json; print(json)"
ライブラリのライセンス
Pythonの標準ライブラリは、Python Software Foundation License(PSFL)の下で配布されています。PSFLはOSI(Open Source Initiative)によって承認されたオープンソースライセンスであり、非常に寛容です。
このライセンスにより、「無償での使用」「コードの改変および再配布」「商用利用」が認められています。ただし、一部のライブラリではPythonのコードや標準ライブラリの一部を再配布する場合は、元のライセンスを表示する義務があります。詳しくは、Pythonのライセンス条項で確認しましょう。
Python標準ライブラリ15選
Pythonは豊富な標準ライブラリを提供しており、これを活用することで多様なプログラミングタスクを効率的に行うことができます。ここでは、その中から15の主要な標準ライブラリを一覧で紹介します。
JSON
Python標準ライブラリに搭載されているjsonモジュールは、JSON形式のデータを扱うためのモジュールです。JSONは、軽量かつデータのやり取りに使いやすい形式として広く利用されています。
jsonモジュールを用いることで、PythonオブジェクトをJSON形式への変換、JSON形式のデータをPythonオブジェクトに変換、JSONファイルの読み書きなどに利用でき、Webアプリケーション開発やデータ分析などに活用できます。
【参考】:json --- JSON エンコーダーとデコーダー | Python 3.12.4 ドキュメント
random
randomモジュールは、乱数を生成するためのモジュールです。整数、浮動小数点、およびブール値の乱数の生成、リストやタプルの要素をランダムにシャッフル、特定の範囲内の乱数を生成、乱数生成アルゴリズムの設定するといった機能を提供します。ゲーム開発、シミュレーション、データ分析などで活用できます。
【参考】:random | 疑似乱数を生成する | Python 3.12.4 ドキュメント
math
mathモジュールは、数学演算を行うためのモジュールです。三角関数 (sin, cos, tan, acos, asin, atan, atan2)、指数関数 (exp, pow)、対数関数 (log, log10, log2)、平方根、絶対値、床関数、天井関数、円周率 (pi)などの機能を提供します。主にゲーム開発、科学計算、データ分析などで活用できます。
【参考】:math | 数学関数 | Python 3.12.4 ドキュメント
sys
sysモジュールは、システムに関する情報を扱うためのモジュールです。Pythonインタプリタの情報取得、コマンドライン引数の取得、システム終了処理の実行、標準出力と標準エラーへの書き込み、モジュールのインポートパス設定といった機能を提供します。
デバッグ、スクリプト実行制御、システムとの連携などで活用できます。
【参考】:sys | システム固有のパラメータと関数 | Python 3.12.4 ドキュメント
os
osモジュールは、オペレーティングシステムと対話するためのモジュールです。ファイルやディレクトリの作成、削除、移動、名前変更、カレントディレクトリの取得、環境変数の取得、プロセス管理、コマンドの実行といった能を提供します。
ファイル操作、システム管理、ネットワークプログラミングなどで活用できます。
【参考】:os| その他のオペレーティングシステムインターフェース | Python 3.12.4 documentation
datetime
datetimeモジュールは、日付と時刻を扱うためのモジュールです。現在の日時取得、日付と時刻の比較 、日付と時刻の書式変換、時間差の計算など様々な機能を提供します。Webアプリケーション開発、データ分析、ログ解析などで活用できます。
【参考】:datetime | 基本的な日付と時刻の型 | Python 3.12.4 ドキュメント
re
reモジュールは、正規表現を用いた文字列処理を行うためのモジュールです。
文字列の検索、文字列の置換 、文字列の分割 、複雑な文字列パターンの抽出 といった様々な機能を提供します。Webスクレイピング、データ分析、テキスト処理などで活用できます。
【参考】:re | 正規表現操作 | Python 3.12.4 ドキュメント
calendar
calendarモジュールは、カレンダーを生成するためのモジュールです。
テキスト形式のカレンダーの生成、HTML形式のカレンダーの生成 、特定の月や年のカレンダーの生成、曜日名のカスタマイズといった、様々な機能を提供します。
スケジュール管理ツール、Webアプリケーション開発、データ分析などで活用できます。
【参考】:カレンダー | 一般的なカレンダー関連関数 | Python 3.12.4 ドキュメント
collections
collectionsモジュールは、リストや辞書、セットなどの基本的なデータ構造を拡張した特殊なデータ構造を提供します。
主な機能としては既定値を持つ辞書(defaultdict)、挿入順序を保持する辞書(OrderedDict)、要素の個数をカウントする辞書(Counter)、両端から要素の出し入れができるリスト(deque)、名前付きタプル(namedtuple)などがあります。
これらのデータ構造は、通常のデータ構造よりも使いやすく、コードをより簡潔で分かりやすくすることができます。
【参考】:コレクション | コンテナデータ型 | Python 3.12.4 ドキュメント
itertools
itertoolsモジュールは、ループ処理を効率的に行うための関数を提供します。主な機能としてはリスト同士の直積(product)、重複のない組み合わせ(combinations)、順序付き組み合わせ(permutations)、無限イテレータ(count、cycle、repeat)、要素のグループ化(groupby)などです。
これらの関数を使うことで、複雑なループ処理を簡潔に記述できます。
【参考】:itertools | 効率的なループのためのイテレータを作成する関数 | Python 3.12.4 ドキュメント
functools
functoolsモジュールは、関数操作のためのツールを提供します。高階関数と呼ばれる、関数に影響を与えたり、他の関数を返したりする関数を扱うことができます。主な機能には部分適用(partial)、デコレータ(wraps) 、キャッシュ化(lrucache)、ユーティリティ関数(updatewrapper)などがあります。
これらの機能を使うことで、 より簡潔で分かりやすく、かつ効率的なコードを記述できます。
【参考】:functools | 呼び出し可能なオブジェクトに対する高階関数と操作 | Python 3.12.4 ドキュメント
subprocess
subprocessモジュールは、外部プログラムを実行するためのモジュールです。主な機能としては外部プログラムの実行、標準入力・出力・エラーストリームの制御 、実行結果の取得、シェルコマンドの実行などがあります。
subprocessモジュールを使うことで、シェルスクリプトを使わずに、Pythonプログラムから外部プログラムを簡単に実行できます。
【参考】:subprocess | サブプロセス管理 | Python 3.12.4 ドキュメント
threading
threadingモジュールは、スレッドと呼ばれる軽量な処理単位を使って、プログラムを並列処理するためのモジュールです。主な機能としてはスレッドの作成と開始、スレッド間の同期 、スレッドの終了処理などがあります。
threadingモジュールを使うことで、CPUの処理能力を有効活用し、プログラムのパフォーマンスを向上できます。
【参考】:スレッド | スレッドベースの並列処理 | Python 3.12.4 ドキュメント
socket
socketモジュールは、ネットワーク通信を行うためのモジュールです。TCP/IPプロトコルを用いて、クライアントとサーバ間のデータ送受信を可能にします。主な機能としてはソケットの作成と接続、データの送受信 、ソケットの切断などがあります。
socketモジュールを使うことで、Webアプリケーションやチャットシステム、ファイル転送ツールなどのネットワークアプリケーションを開発できます。
【参考】:socket | 低レベルネットワークインターフェース | Python 3.12.4 ドキュメント
logging
loggingモジュールは、プログラムの動作状況を記録するためのモジュールです。ログを記録することで、プログラムのデバッグや問題の検出、動作分析などに役立てられます。主な機能としてはログレベルの設定 、ログメッセージの出力、ログファイルへの出力、コンソールへの出力などがあります。
loggingモジュールを使うことで、開発者はプログラムの動作を詳細に把握し、問題を迅速に解決できます。また、運用中のプログラムの動作状況を監視するのにも役立ちます。
【参考】:ロギング | Python のロギング機能 | Python 3.12.4 ドキュメント
ライブラリに強いPythonエンジニアを目指そう
ここまで、Pythonエンジニアとして必要と思われる代表的な標準ライブラリを紹介してきました。近年、データ分析やWeb開発など、様々な分野で活躍するPythonエンジニアの需要が高まっています。特に、ライブラリを使いこなせるPythonエンジニアは重宝されます。
ライブラリを活用することで、プログラミングスキルは向上し、プログラミング効率もアップします。この記事を参考に、ライブラリに強いPythonエンジニアを目指しましょう。
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから