いっぽんの猟銃のむこうに (DAIZOじいさんとGun)

ヌルめの技術メモとか。フリーランスやってます (http://acez.jp/)

ファイル中の特定文字列数をカウントする

いろいろやり方はあるけどPythonでやるのが楽ちん。
文字列読み込んでstr.count('hoge')で一発。


以下、改行文字として[#@@@@#]という頭の悪い文字列を使ったCSVデータの改行文字数=列数をカウントするサンプル。

count_line.py

#!/usr/bin/python

import sys

argvs = sys.argv

if len(argvs) != 2:
    print '  usage: $python %s [filename]' % argvs[0]
    sys.exit(1)

line = ""
buffsize = 1024 * 1024 * 1024 # 1GB buffer
while True:
    buff = f.read(buffsize)
    line += buff
    if len(buff) != buffsize:
        break

print '  line is %s . ' % line.count('[#@@@@#]')

CentOSPython 2.4だとファイルサイズが大きすぎる場合にこけますけど
まあやっつけ仕事なんで多めに見てください。


あとPythonは2.4とか使ってないで新しくしたほうがよいです。