連続した空白行を検出するスクリプト

30分プログラム、その634。連続した空白行を検出するスクリプトを書いてみた。
連続した空白行は意図していれることもあるけど、たいていはうっかり改行をいれすぎちゃったときのほうが多い。
別にそれくらいいいじゃん、とかいう話はおいといて、とりあえず検出するスクリプトを書いてみよう。

使い方

$ echo -n "\n" | python double-blank.py ; echo $?
0
$ echo -n "\n\n" | python double-blank.py ; echo $?
1

ソースコード

#! /usr/bin/python
# -*- mode:python; coding:utf-8 -*-
#
# double-blank.py -
#
# Copyright(C) 2009 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2009/08/07 22:02:25
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#

from __future__ import with_statement
import sys
from itertools import *

def argf():
    if len(sys.argv) <= 1:
        for line in sys.stdin:
            yield line
    else:
        for file in sys.argv[1:]:
            with open(file) as f:
                for line in f:
                    yield line

def is_double_line(io):
    lines = list(io)
    return any(starmap(lambda x,y: x == y == "\n",
                       zip(lines,lines[1:])))

if is_double_line(argf()):
    sys.exit(1)
else:
    sys.exit(0)