Python打开目录下所有文件

用Python打开指定目录下所有文件,统计文件里特定的字段信息。

这里是先进入2017-02-25到2017-03-03目录,然后进入特定IP段目录下,最后打开文件进行统计

import os, glob, re, sys
from isCN import *
urllocate = 6
if(len(sys.argv) < 3):
    print 'Useage comand JDName JDIPduan';
    os.exit()
print sys.argv[1];
ipDuan = sys.argv[2]
for i in range(1, 8+1):
    singleStream = 0
    in2out = 0
    lineNum = 0
    if(i >= 1 and i <= 3 ):
        day = '2017-03-0' + str(i)
    if(i >= 5 and i <= 8 ):
        day = '2017-02-2' + str(i)
    if(i == 4):
        continue
    try:
        os.chdir('./' + day)
    except:
        continue    
    files = glob.glob(ipDuan)
    for f in files:
        print f;
        try:
            f = open('./' + f + '/find_prog.log')
        except:
            continue
        #print f;
        while True:  
            line = f.readline()
            if not line: break
            lineNum = lineNum + 1
            #print line,
            fields = line.split('	')
            length = len(fields)
            #print 'length='+str(length);
            if(length >= urllocate):
                url = fields[urllocate-1]
                url = url.strip()
                #print url,
                if(url=='null'):
                    singleStream = singleStream + 1
                try:
                    cipPort = fields[1].split('-')[0]
                    cip = cipPort[0 : cipPort.rindex('.')]
                    #print cip;
                    if(iscn(cip) == True):
                        in2out = in2out + 1
                except:
                    continue
            line = f.readline()
        f.close() 
    #print 'single=' + str(singleStream); 
    #print 'lineNum=' + str(lineNum); 
    print day + ' cn2foreign = ' + str(in2out) + '/' + str(lineNum) + ' = '  + str(1.0 * in2out / lineNum) + '
'; 
    print day + ' singleStream = ' + str(singleStream) + '/' + str(lineNum) + ' = '  + str(1.0 * singleStream / lineNum) + '
'; 

其中用到了别人的库,用于判断IP是否属于国内IP

python JDStatistic.py JDName 10.*

原文地址:https://www.cnblogs.com/vincent-vg/p/6537784.html