Thanks for the help so far - it seems easy enough. To clarify on the points you have asked me about:
A sqlite3 database on my machine would be an excellent idea for personal use. I would like to be able to get a functional script for others on my team to use, so maybe a script or compiled program (Win32) eventually. As for output, I would probably like to return the entire lines that contain any search results of those strings. Maybe just output to a results.txt that would have the entire line of each line that contains 'Bob', 'John', 'Joe', 'Jim', and or 'Fred'. Speed isn't as important as ease of use, I suppose, since non-technical people should be able to use it, ideally. Maybe, since I am on Win32, I could have a popup window that asks for input filename and path, and then asks for string(s) to search for, and then it would process the search and output all lines to a file. Something like that is what I am imagining, but I am open to suggestions on items that may be easier to use or code. Is that reasonably simple to code for a beginner? Thanks again, Scott On Fri, Jan 23, 2009 at 11:52 AM, Kent Johnson <ken...@tds.net> wrote: > On Fri, Jan 23, 2009 at 1:25 PM, Scott Stueben <sidewalk...@gmail.com> wrote: > >> I would like to search a text file for a list of strings, like a sql query. > > What do you want to do if you find one? Do you want to get every line > that contains any of the strings, or a list of which strings are > found, or just find out if any of the strings are there? > >> For instance: To search a text file for the values 'Bob', 'John', >> 'Joe', 'Jim', and 'Fred', you would have to open the dialog and do >> five separate searches. Lots of copying and pasting, lots of room for >> typos. > > You can do this with a regular expression. For example, > > import re > findAny = re.compile('Bob|John|Joe|Jim|Fred') > > for found in findAny.findall(s): > print found > > will print all occurrences of any of the target names. > > You can build the regex string dynamically from user input; if > 'toFind' is a list of target words, use > findAny = re.compile('|'.join(re.escape(target) for target in toFind)) > > re.escape() cleans up targets that have special characters in them. > -- "Shine on me baby, cause it's rainin' in my heart" --Elliott Smith _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor