首页 > 代码库 > Pytohn实现Linux shell中的wc命令
Pytohn实现Linux shell中的wc命令
#!/usr/bin/python import sys import os 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", "--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
Pytohn实现Linux shell中的wc命令
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。