Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __author__ = 'MrXaK'
- __version__ = '0.1b'
- import os
- from optparse import OptionParser
- import string
- import datetime
- import ctypes
- isTimeCheck = 1
- isRecursive = 1
- extension = 'py'
- workDir = os.path.dirname(__file__)
- parseDir = workDir
- outDir = os.path.dirname(__file__)
- outFile = outDir+'/out'
- excludeDir = ''
- year = 2011
- def writeToFile(str):
- if (not os.path.exists(outFile)):
- file = open(outFile, 'w')
- file.write(str)
- file.close()
- return
- file = open(outFile, 'a')
- file.write(str)
- file.close()
- def isCountable(fileName):
- print fileName
- if (string.split(fileName, '.')[-1] != extension):
- return False
- if (isTimeCheck):
- t = os.path.getmtime(fileName)
- t = datetime.datetime.fromtimestamp(t)
- if (t.timetuple()[0] == year):
- return True
- else:
- return False
- return True
- def is_hidden(filepath):
- try:
- name = os.path.basename(os.path.abspath(filepath))
- return name.startswith('.') or has_hidden_attribute(filepath)
- except:
- return False
- def has_hidden_attribute(filepath):
- try:
- attrs = ctypes.windll.kernel32.GetFileAttributesW(unicode(filepath))
- assert attrs != -1
- result = bool(attrs & 2)
- except (AttributeError, AssertionError):
- result = False
- return result
- def parseDirCall(dirName):
- counter = 0
- writeToFile('Parsing dir %s\n' %(dirName))
- for fileName in os.listdir(dirName):
- if (dirName+'/'+fileName in excludeDir):
- continue
- if (is_hidden(dirName+'/'+fileName)):
- continue
- try:
- if (os.path.isdir(dirName+'/'+fileName) and isRecursive):
- counter = counter + parseDirCall(dirName+'/'+fileName)
- elif (isCountable(dirName+'/'+fileName)):
- counter = counter + sum(1 for l in open(dirName+'/'+fileName, 'r'))
- except:
- continue
- pass
- writeToFile('Sum: %d\n' %counter)
- return counter
- if '__main__' == __name__:
- parser = OptionParser(version='%prog '+__version__ , usage =
- """Usage: %prog [options]
- """)
- parser.add_option('-d', '--directory', default=parseDir,
- help='Directory to parse')
- parser.add_option('-e', '--extension', default=extension,
- help='Extension')
- parser.add_option('-t', '--timeCheck', default=isTimeCheck,
- help='Check creation time')
- parser.add_option('-r', '--recursive', default=isRecursive,
- help='Parse recursive')
- parser.add_option('-o', '--outFile', default=outFile,
- help='Out file name')
- parser.add_option('-x', '--excludeDir', default='',
- help='Out file name')
- (options, args) = parser.parse_args()
- print options
- isTimeCheck = options.timeCheck
- isRecursive = options.recursive
- extension = options.extension
- parseDir = options.directory
- excludeDir = string.split(options.excludeDir, ';')
- if (-1 != string.find(options.outFile, '/')):
- outFile = options.outFile
- else:
- outFile = outDir+'/'+options.outFile
- a = parseDirCall('%s' %options.directory)
- writeToFile('All sum: %d' %a)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement