wc、3たび

30分プログラム、その801。
何度かといてるwc(wc.py - みずぴー日記,http://d.hatena.ne.jp/mzp/20090714/wc)を、また作ってみた。
仕様がちがっとるやんorz。

使い方

$ python wc.py foo.txt
 21  75 431

ソースコード

#! /usr/bin/python
# -*- mode:python; coding:utf-8 -*-
from __future__ import with_statement
import sys
import re


def lines(s):
    return len(s.split("\n"))

def chars(s):
    return len(s)

def words(s):
    return len(re.split('\W+', s))

for path in (sys.argv[1:] if len(sys.argv[1:]) != 0 else ["/dev/stdin"]):
    with file(path, 'r') as fp:
        s = fp.read()
        print "%3d %3d %3d" % (lines(s),words(s),chars(s))