1. TOP
  2. ブログ
  3. Python、ニッチな標準ライブラリの紹介

Python、ニッチな標準ライブラリの紹介

Pythonは「バッテリー付属」とよく表現されるとおり、数多くの高機能なモジュールが標準ライブラリとして利用可能です。
osモジュールやsysモジュール等の非常に汎用的なライブラリもあれば、限られた特定の用途に使うニッチなライブラリもあります。
今回は、少しニッチなライブラリを3つ紹介していきます。

calendarモジュール

https://docs.python.jp/3/library/calendar.html

Pythonで日付を扱う際の一般的な方法としては、標準ライブラリのdatetimeモジュールを使う方法です。
このdatetimeを拡張し、もう少し便利な機能を提供しているサードパーティ製ライブラリの「dateutil」というものがあり、タイムゾーンの変換ならば「pytz」があります。
これらとは別に、標準ライブラリには「calendar」というモジュールがあります。
ではこのcalendarモジュールですが、これは名前のとおりカレンダーの出力を行う際に大変便利です。

from calendar import TextCalendar
cal = TextCalendar()
text = cal.formatmonth(2017, 7)
print(text)

text_calendar.png

おそらくcalendarモジュールで最も利用されるのは、HTMLとしてカレンダーを出力する、というものです。
サンプルは以下のようになります。

from calendar import HTMLCalendar
cal = HTMLCalendar()
html = cal.formatmonth(2017, 7)
with open('calendar.html', 'w') as file:
file.write(html)

html_calendar.png

もう少し見栄えをよくしたいならば、HTMLCalendarクラスを継承し、日の出力部分にあたるformatdayメソッド等を上書きすることでカスタマイズが可能です。

inspectモジュール

https://docs.python.jp/3/library/inspect.html

モジュール、クラス、メソッド、関数等のdocstringや、ソースコード、ファイル名など、様々な情報を取得することができるモジュールです。
Sphinxのようなドキュメント生成ツールや、IDE、Pythonプログラムのコーディングスタイルをチェックするツールを作成する等、少し凝ったことに使えます。

import inspect
class MyClass:
"""クラスの説明."""

pass

class_docstring = inspect.getdoc(MyClass)
file_name = inspect.getsourcefile(MyClass)
line = inspect.getsourcelines(MyClass)

print(class_docstring)
print(file_name)
print(line[1])

出力
クラスの説明.
main.py
3

wsgirefモジュール

https://docs.python.jp/3/library/wsgiref.html

wsgirefモジュールはWSGIのリファレンス実装です。
WSGIはWeb Server Gateway Interfaceの略で、ウェブサーバーとウェブアプリケーションを繋ぐためのルールのようなものです。
このWSGIに準拠すると、異なるウェブサーバーであってもソースコードを変更することなく動作させることができるようになるため、現在のPythonのWebフレームワークの殆どはWSGIをサポートしています。
ドキュメントには簡単なサンプルもあり、Pythonでのウェブの仕組みを知りたい方は、興味があれば読んでみると良いでしょう。

 

 

株式会社キャパでは、アプリの企画・開発についてご相談を承っています。

アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
アプリ開発:実績のご紹介

    ホワイトペーパーフォームバナー

    【DL可能な資料タイトル】

    • ・プログラムによる建築/土木設計のQCD(品質/コスト/期間)向上
    • ・BIM/CIMの導入から活用までの手引書
    • ・大手ゼネコンBIM活用事例と建設業界のDXについて
    • ・デジタルツイン白書
    • ・建設業/製造業におけるデジタルツインの実現性と施設管理への応用

    詳細はこちら>>>

    PAGE TOP