Python:完整版 wc
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:完整版 wc相关的知识,希望对你有一定的参考价值。
此 Python 脚本基本上实现了 Linux 系统里 wc 命令的全部功能
vim wc.py
#!/usr/bin/python import os import sys from 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", "--word", 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", "--nototal", dest="nototal", action="store_true", default=False, help="show total or not") 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.lines, options.chars = True, True, True if args: 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 elif os.path.isdir(fn): print >> sys.stderr, "%s: is a directory" % fn else: sys.stderr.write("%s: No such file or directory\n" % fn) if len(args) > 1: if not options.nototal: 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) main() |
本文出自 “M四月天” 博客,请务必保留此出处http://msiyuetian.blog.51cto.com/8637744/1783267
以上是关于Python:完整版 wc的主要内容,如果未能解决你的问题,请参考以下文章