ファイルの行番号を追加して表示するスクリプト

ブログなんかにソースをコピペするときに行数をつけるためのPythonスクリプトです。
(シェルでやればいいのに、というツッコミは我慢していただければ・・・)


▼add_line_number.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-


import os.path
import sys


def check_argv():
    if len(sys.argv) == 0 and len(sys.argv) > 2:
        return False
    else:
        return True


def add_line_number(target):
    line_number = 1

    for line in open(target, 'r'):
        line = line.rstrip()
        if line:
            print str(line_number) + ": " + line
            line_number += 1
        else:
            print "\n"


def main():
    if check_argv():
        target = sys.argv[1]
        if os.path.exists(target):
            add_line_number(target)
        else:
            print "Failure : No File exists"
    else:
        sys.exit()


if __name__ == '__main__':
    main()


■実行結果 (自分自身を引数に)

1: #!/usr/bin/env python
2: # -*- coding:utf-8 -*-


3: import os.path
4: import sys


5: def check_argv():
6:     if len(sys.argv) == 0 and len(sys.argv) > 2:
7:         return False
8:     else:
9:         return True


10: def add_line_number(target):
11:     line_number = 1


12:     for line in open(target, 'r'):
13:         line = line.rstrip()
14:         if line:
15:             print str(line_number) + ": " + line
16:             line_number += 1
17:         else:
18:             print "\n"


19: def main():
20:     if check_argv:
21:         target = sys.argv[1]
22:         if os.path.exists(target):
23:             add_line_number(target)
24:         else:
25:             print "Failure : No File exists"
26:     else:
27:         sys.exit()


28: if __name__ == '__main__':
29:     main()

よくよく考えてみたら、スペース4つの置き換えも一緒にやればよかった。