[Tutor] Writing to output file
Jon Cosby
jlcos@accessone.com
Thu, 25 Mar 1999 12:35:14 -0800
This should be an easy one, but I'm not finding it: How do you print to an
output file? I'm trying to get the results of search.py below on a text
file. Nothing I've tried seems to work.
Maybe somebody can tell me why it's so slow, too; it took it 15 minutes to
search a 115 MB archive.
Jon Cosby
-----------------------------------Start
search.py--------------------------------------
# Search.py
# Counts (case-insensitive) instances of string in a given directory and
it's sub-directories
# To-do: Include file names in the search; search multiple strings
import re, sys, os
def searchtext(filename, text):
line = "initialized"
infile = open(filename, 'r')
outfile = open('c:\\data\\results.txt', 'w')
a = []
while line != "":
line = infile.readline()
b = re.compile(text, re.I).findall(line)
if len(b) > 0:
a.extend(b)
if len(a) > 0:
print filename, text, ':', len(a) # I want to write this to
'results.txt'
else: # Seems like a
simple problem, but the
return 0 # documents only give
instructions
infile.close() # for writing a string.
outfile.close()
def getFile(dir, text):
dl = os.listdir(dir)
for i in range(len(dl)):
dl[i] = dir + '\\' + dl[i]
if os.path.isfile(dl[i]):
searchtext(dl[i], text)
else:
getFile(dl[i], text)
if __name__ == '__main__':
getFile(sys.argv[1], sys.argv[2])
------------------------------------------------------End
search.py-----------------------------------------------------