使用python实现wc命令程序的功能的实例代码

高洛峰
Lepaskan: 2017-03-20 13:26:10
asal
2062 orang telah melayarinya

这里使用了 python 的基本代码实现了 Linux 系统下 wc 命令程序的基本功能。

#!/usr/bin/env python
#encoding: utf-8
# Author: liwei
# Function: wc program by python
 
from optparse import OptionParser
import sys,os
 
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='don\'t print total information')
 
    options, args = parser.parse_args()
    return options, args
 
#print options
def get_count(data):
    chars = len(data)
    words = len(data.split())
    lines = data.count('\n')
    return lines, words, chars
 
#if not options.chars and not options.words and not options
 
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:
        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)
        # 只有多个文件的时候会计算出total字段
        if len(args) > 1 and not options.nototal:
            print_wc(options, total_lines, total_words, total_chars, 'total')
    else:
        fn = ''
        data = sys.stdin.read()
        lines, words, chars = get_count(data)
        print_wc(options, lines, words, chars, fn)
     
if __name__ == '__main__':
    main()
Salin selepas log masuk

Atas ialah kandungan terperinci 使用python实现wc命令程序的功能的实例代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!