⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mboxcount.py

📁 用python实现的邮件过滤器
💻 PY
字号:
#! /usr/bin/env python"""Count the number of messages in Unix mboxes.Usage: %(programs)s [-g] [-h] path1 ...Options:    -h        Print this help message and exit    -g        Do globbing on each path.  This is helpful on Windows, where the        native shells don't glob.""""""Stats for Barry's corpora, as of 26-Aug-2002, using then-current 2.3a0:edu-sig-clean.mbox                 252 (+ unparseable: 0)python-dev-clean.mbox             8326 (+ unparseable: 0)mailman-developers-clean.mbox     2427 (+ unparseable: 0)python-list-clean.mbox          159072 (+ unparseable: 2)zope3-clean.mbox                  2177 (+ unparseable: 0)Unparseable messages are likely spam.zope3-clean.mbox is really from the zope3-dev mailing list.The Python version matters because the email package varies across releasesin whether it uses strict or lax parsing."""import sysimport mailboximport emailimport getoptimport globfrom spambayes.mboxutils import get_messagetry:    True, Falseexcept NameError:    # Maintain compatibility with Python 2.2    True, False = 1, 0program = sys.argv[0]def usage(code, msg=''):    print >> sys.stderr, __doc__    if msg:        print >> sys.stderr, msg    sys.exit(code)def count(fname):    fp = open(fname, 'rb')    mbox = mailbox.PortableUnixMailbox(fp, get_message)    goodcount = 0    badcount = 0    for msg in mbox:        if msg["to"] is None and msg["cc"] is None:            badcount += 1        else:            goodcount += 1    fp.close()    return goodcount, badcountdef main():    try:        opts, args = getopt.getopt(sys.argv[1:], 'hg', ['help'])    except getopt.error, msg:        usage(1, msg)    doglob = False    for opt, arg in opts:        if opt in ('-h', '--help'):            usage(0)        elif opt == '-g':            doglob = True    for path in args:        if doglob:            fnames = glob.glob(path)        else:            fnames = [path]        for fname in fnames:            goodn, badn = count(fname)            print "%-35s %7d (+ unparseable: %d)" % (fname, goodn, badn)if __name__ == '__main__':    main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -