Repository - file scanner

jigloo phus at live.com
Mon Jun 11 13:47:27 EDT 2007


On 6 9 ,   3 33 , HMS Surprise <j... at datavoiceint.com> wrote:
> Greetings,
>
> Could someone point my muddled head at a/the python repository. I know
> that one exists but cannot find it again. In particular I am looking
> for a standalone search tool that given a path searches files for a
> text string.
>
> Thanks,
>
> jvh

grep maybe the best choice.
if you want a pure python script
here it is.

#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# File: grep.py
# Author: phus

try:
	import psyco
	psyco.full()
except ImportError:
	print 'no mod psyco'

import os, re

def grep_r(rx, path):
	root = path
	dirstack = [root]
	while len(dirstack) > 0:
		dir = dirstack.pop()
		try:
			dirs = os.listdir(dir)
		except:
			print "os.listdir('%s') error: %s" % (dir, os.error)
			continue
		for name in dirs:
			fullname = os.path.join(dir, name)
			if os.path.isdir(fullname):
				dirstack.append(fullname)
			else:
				grep(rx, fullname)

def grep(rx, file):
	try:
		f = open(file, "r")
		for line in f:
			if rx.findall(line):
				print file, ":", line.strip()
		f.close()
	except:
		print "grep error in %s" % file

if __name__ == "__main__":
	patern = "blah blah"
	rx = re.compile(patern, re.I)
	grep_r(rx, '.')




More information about the Python-list mailing list