ソースコードとかで、行頭に行番頭を付加するのとタブを半角空白に置換するのが必要になったので作った。
いや、Cygwinでcat -n | expand するだけの話なんだけど、普段cmd.exeで生きている人なので。
import os import sys def calc_pad_len(column, ts): ''' >>> calc_pad_len(0, 4) 4 >>> calc_pad_len(2, 4) 2 >>> calc_pad_len(3, 4) 1 >>> calc_pad_len(4, 4) 4 >>> calc_pad_len(10, 8) 6 ''' return ts - column%ts def expand_and_lineno(infile, outfile, ts): lineno = 0 for line in infile: lineno += 1 outfile.write('%4d '%(lineno)) column = 0 for c in line: if c == '\t': pad_len = calc_pad_len(column, ts) outfile.write(' '*pad_len) column += pad_len else: outfile.write(c) column += 1 if __name__ == '__main__': if '-t' in sys.argv: ts = int(sys.argv[sys.argv.index('-t') + 1]) else: ts = 4 expand_and_lineno(sys.stdin, sys.stdout, ts)
かかった時間:20分
こういう素振り(と言ったら大袈裟だけど)もしておかないとね。