#!/usr/bin/pythonimport sysimport osfrom optparse import OptionParser  def opt():    parser = OptionParser()    parser.add_option("-c", "--char",                      dest="chars",                      action="store_true",                      default=False,                      help="only count chars")    parser.add_option("-w", "--work",                      dest="words",                      action="store_true",                      default=False,                      help="only count words")    parser.add_option("-l", "--line",                      dest="lines",                      action="store_true",                      default=False,                      help="only count lines")    parser.add_option("-n", "--no-total",                      dest="total",                      action="store_true",                      default=False,                      help="only count total")    options, args = parser.parse_args()    return options, args  def get_count(data):    chars = len(data)    words = len(data.split())    lines = data.count('\n')    return lines, words, chars  def print_wc(options, lines, words, chars, fn):    if options.lines:       print lines,    if options.words:       print words,    if options.chars:       print chars,    print fn  def main():    options, args = opt()    if not (options.lines or options.words or options.chars):        options.lines, options.words, options.chars = True, True, True    if args:        file = 0        total_lines, total_words, total_chars = 0, 0, 0        for fn in args:            if os.path.isfile(fn):                with open(fn) as fd:                     data = fd.read()                lines, words, chars = get_count(data)                print_wc(options, lines, words, chars, fn)                total_lines += lines                total_words += words                total_chars += chars                file += 1            elif os.path.isdir(fn):                print >> sys.stderr, "%s: is a directory" % fn            else:                sys.stderr.write("%s: No such file or direcotry\n" % fn)        if file > 1 and  not options.total:               print_wc(options, total_lines, total_words, total_chars, "total")    else:        data = sys.stdin.read()        fn = ''            lines, words, chars = get_count(data)        print_wc(options, lines, words, chars, fn)  if __name__ == '__main__':    main()

[root@dns ~]# python wc100.py -wcl 1.txt data.sql nginx.sh //具体用法 -w 统计 单词数 -c 统计字数 -l统计行数 -n取消总统计量

[root@dns ~]# wc -wcl 1.txt data.sql nginx.sh