"seq a z"でaからzを生成するコマンド

30分プログラム、その422。"seq a z"でaからzを生成するコマンド。
前にseqに感動したので、わりとよく使っている。いちばん使うのがダミーファイルの生成なんだけど、ダミーファイルが数字だけというのはちょっと読みづらい。
というわけで、seqの文字版。要するに、seq a zとかするとaからzを生成するコマンドを作ってみた。

使い方

$ python 422-seq.py 1 4
1
2
3
4

$ python 422-seq.py a d
a
b
c
d

ソースコード

#! /usr/bin/python
# -*- mode:python; coding:utf-8 -*-
#
# seq.py -
#
# Copyright(C) 2008 by mzp
# Author: MIZUNO Hiroki / mzpppp at gmail dot com
# http://howdyworld.org
#
# Timestamp: 2008/11/25 20:25:24
#
# This program is free software; you can redistribute it and/or
# modify it under MIT Lincence.
#
import sys

def int_seq(a,b):
    return xrange(a,b+1)

def char_seq(a,b):
    for c in xrange(ord(a),ord(b)+1):
        yield chr(c)

if len(sys.argv) != 3:
    print "usage: seq <From> <To>"
else:
    (_,a,b) = sys.argv
    if a.isdigit() and b.isdigit():
        for i in int_seq(int(a),int(b)):
            print i
    elif len(a) == len(b) == 1:
        for c in char_seq(a,b):
            print c
    else:
        sys.stderr.write("invalid argument\n")
        sys.exit(1)