python テキストファイルに行番号付与
#! /usr/local/bin/python import sys argv_list = sys.argv[1:] for file_path in argv_list: try: f = open(file_path) all_data = f.readlines() rowcolmn = len(str(len(all_data))) print "----", file_path , "----" i=1 for line in all_data: print str(i).zfill(rowcolmn), line, i=i+1 f.close() except IOError: print "Can't find file:", file_path
こんなものを作ってみた。
先の九九のは、Python Shell(対話モード)で使用していたが、こっちはキチンとファイルに保存した。(手抜きだが aa.py という名前で保存した)
使い方は
C:\Python23>aa.py c:\text1.txt
なんて具合につかいます。
そーすると、
C:\Python23>aa.py c:\text1.txt ---- c:\text1.txt ---- 01 あいうえお 02 かきくけこ 03 さしすせそ 04 タカギブー 05 あいうえお 06 かきくけこ 07 さしすせそ 08 タカギブー 09 あいうえお 10 かきくけこ
なんてな具合になります。
簡単に説明しすれば、ファイルを読み込んで行数を取得し、その行数の桁数を保持して、九九でつかったrjustを使って桁あわせ。
テキスト出力しつつ、その行番号を頭に付与する、なんて感じ。
ソースがひどく汚く感じるので、後々綺麗に、そしてシンプルに書けるようになればと思う。
今は泥臭くても、なりふりかまわず試すのみ。