一个取代shell wc -l 命令的python小脚本
1.通过python下optparse模块下OptionParser类是新对文件的统计
#!/opt/data/ipy/bin/python #!-*- coding:utf8 -*- import sys #加载sys模块 from optparse import OptionParser #加载optparse模块 parser = OptionParser(usage="usage: %prog [options] [file1 file2 ...]") #实例化对象 parser.add_option("-c", "--char", dest="characters", action="store_true", default=False, help="Only count characters") parser.add_option("-w", "--words", dest="words", action="store_true", default=False, help="Only count words") parser.add_option("-l", "--lines", dest="lines", action="store_true", default=False, help="Only count lines") (options, args) = parser.parse_args() if not (options.characters or options.words or options.lines): options.characters, options.words, options.lines = True, True, True def get_count(init_data): words=len(init_data.split()) lines=init_data.count("\n") chars=len(init_data) return (chars,words,lines) def print_wc(chars,words,lines,fn): if options.characters: print chars, if options.words: print words, if options.lines: print lines, print fn if args: t_lines,t_words,t_chars = 0,0,0 for fn in args: f=open(fn) data=f.read() init_data=data.strip() chars,words,lines = get_count(init_data) t_lines+=lines t_words+=words t_chars+=chars print_wc(chars,words,lines,fn) print t_chars,t_words,t_lines,"total" else: fn="stdin" data=sys.stdin.read() init_data=data.strip() chars,words,lines=get_count(init_data) print_wc(chars,words,lines,fn)