標籤:code 判斷 foreign style stream index use sys locate
用Python開啟指定目錄下所有檔案,統計檔案裡特定的欄位資訊。
這裡是先進入2017-02-25到2017-03-03目錄,然後進入特定IP段目錄下,最後開啟檔案進行統計
import os, glob, re, sysfrom isCN import *urllocate = 6if(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(‘\t‘) 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) + ‘\n‘; print day + ‘ singleStream = ‘ + str(singleStream) + ‘/‘ + str(lineNum) + ‘ = ‘ + str(1.0 * singleStream / lineNum) + ‘\n‘;
其中用到了別人的庫,用於判斷IP是否屬於國內IP
python JDStatistic.py JDName 10.*
Python開啟目錄下所有檔案