Python

chardetで文字コードを自動変換する

curlなどで取得したテキストを自動的にターミナルの文字コード(たとえばUTF-8)に変換したい場合がある。 このような場合には、Pythonのchardetモジュールが使える。 chardetは、Mozilla Firefoxで使われている文字コード判定アルゴリズムをPythonモジュー…

リストの処理に関するトリッキーな記法いろいろ

よく忘れるのでメモ。 一定のサイズごとに分ける http://docs.python.org/2/library/functions.html#zip >>> a = range(20) >>> n = 5 >>> zip(*[iter(a)]*n) [(0, 1, 2, 3, 4), (5, 6, 7, 8, 9), (10, 11, 12, 13, 14), (15, 16, 17, 18, 19)] 個数が割り切…

PEP 8 をつぶやくTwitter Botを作った

https://twitter.com/python_pep8 https://twitter.com/pep8_bot Pythonの標準コーディング規約 PEP 8 に書かれているフレーズを一定間隔でツイートする。 PEP 8、一度読んでもすぐ内容を忘れてしまうのだけど、いろいろ参考になることが書いてあるし、なん…

PyCon APAC 2013 に参加した

http://apac-2013.pycon.jp/ja/ 野良Pythonエンジニアとしては行くしかない、ということで初参加。 プライベートで行くカンファレンスなので、自由に聴講レポートが書ける。すばらしい。 資料や動画は、タイムテーブルのページから確認できる。 特に動画は会…

virtualenvとpipでPyPIパッケージをローカルインストールして使う

PythonでPyPIパッケージをローカルインストールして使うには、virtualenvを使う。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 12.04.2 LTS Release: 12.04 Codename: precise まず、apt等のパッケージマネ…

scapyでpcapファイルを逐次的に解析する

Pythonでpcapファイルを解析するにはscapyが便利。scapyを用いてpcapファイルを逐次的に解析するには、下記のようにsniffメソッドを使えばよい。 from scapy.all import * from datetime import datetime def analyze(pkt): # キャプチャ日時はpkt.timeからu…

Pythonでヒープ構造を使う(heapqモジュール)

常に最初の要素が最小値(あるいは最大値)となるようなリストが必要な場合、ヒープ構造を用いることで最小値(最大値)の取り出しをO(1)、要素の追加をO(log n)の時間計算量で行うことができる。 Pythonでヒープを扱う場合、heapqモジュールが使える。 impo…

Python3の変更点のメモ

[Python-Dev] The end of 2.7 Python3についてはこれまでほとんど目を向けていなかったのだけど、python-devのメーリングリストでPython2系のメンテナンスをどうするかという議論がされているのを見て、改めてPython3について調べてみようと思った。というわ…