明日から使えるPythonの標準モジュール実行

はじめに

Pythonは-mオプションを付けてpythonを実行するとモジュールを実行してくれます。

このオプションは$PYHTONPATHで設定されているモジュールの配置場所や、
設定ファイルなどで設定されているsys.pathの場所にあるモジュールを実行できます。

Pythonをインストールすると一緒に導入される標準モジュールの中にも、コマンドラインからの実行できるものが存在します。
今回はその中でも明日からでも使えるモジュールを紹介します。

1. SimpleHTTPServer

HTTPサーバを立てる。

カレントディレクトリをHTTPで公開します。

引数なしでは8000番ポートで、引数にポート番号を与えることもできます。
ファイル共有などに簡単に使えるかもしれません。
また、index.htmlを作ることで読み込んでくれるようです。
これが便利すぎて今回の記事を作ったと言っても過言ではないです。

2. CGIHTTPServer

CGIが実行できるHTTPServerを立てる。

CGI実行機能以外はSimpleHTTPServerと同じです。

3. smtpd

SMTPサーバを立てる。

メール送信テストなどに使えそうですかね。
sudoをつけないといけない点に注意です。

4. smtplib

localhostにメールを送信する。

From,To,messageを順番に入力して最後にEOFを入力して送信。 大体の環境ではEOFはCtrl+Dです。 smtpdと一緒に使うことになるかと思います。

5. zipfile

zipファイルを展開、圧縮する。

ヘルプも出るのでわかりやすくて使いやすい!
ヘルプの通り、-lでリスト、-tでテスト、-eで展開、-cで圧縮です。

6. gzip

gzipファイルを展開、圧縮する。

  • 圧縮
  • 展開

zipfileと違い、gzipにはヘルプはないです。
少し、使いづらいですね…

7. base64

base64エンコード、デコードして表示する。

ファイルを引数に取ります。
echoにパイプで使うことで任意の文字列をエンコード、デコードもできます。
デコードはオプション-dです。

8. json.tool

jsonを整形して表示する。

jsonファイルを整形します。
echoにパイプで使うこともできます。

9. xmllib

xmlを解析する。

こちらもファイルを引数に取り、解析します。

10. platform

OS情報を表示する。

意外と便利かもしれないですね。

11. locale

ロケール情報を表示する。

詳しいロケール情報が出てきます。
すごく長いです、普通にlocaleコマンドのほうが読みやすいかも…

12. telnetlib

telnetクライアントとして使える。

  • スターウォーズ・エピソード4が流れる
  • 囲碁ができる
  • チェスができる

13. this

The Zen of Python(Pythonの禅)を見ることができる。

Pythonのイースターエッグだそうです。
中身は公式ドキュメントのPEP20にも載っています。
Pythonでコードを書く際の原則をまとめたものです。
Pythonインタプリタからimport thisでも見ることができます。

おまけ

面白いコマンドを探していた所、slコマンドというものを見つけました。
昔から存在している有名なもののようですね。
lsを打ち間違えることから作られたようです。

OSに依りますが、Ubuntuでは以下のコマンドでインストールできます。

インストール後、slを打つことでSLが走り抜けていきます。
オプションとしてlsでよく使われる-l-a-Fがあります。
SLが小さくなったり、乗客が助けを求めていたり、空を飛んでいったりします。

おわりに

Pythonは結構使っているんですが、コマンドラインから使える標準モジュールがあるとは知りませんでした。
特にSimpleHTTPServerとzipfileの2つはとても使いやすそうなので使っていきたいと思います。

telnetで見られるスターウォーズはすごいですね…
AA職人の熱意を感じます。

成田哲洋

寒くなってきてラーメンがおいしい時期です。

※記事の内容は保証はしておりません(執筆時期や実施環境により挙動が変わるものがある為)。
別途検証してご利用いただくことをおすすめいたします。