"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)