This recipe demonstrates a simple text file searching program. The code asks for a directory to search (with its subdirectories) and the text that needs to be found in the contained files. This is just a simple starting program demonstrating how to access a computer's file system and accomplish useful work at the same time.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
import os def main(): try: directory = get_directory() text = get_text() results = do_search(directory, text) finish(results) except: pass def get_directory(): while True: try: directory = raw_input('Directory: ') assert os.path.isdir(directory) return directory except AssertionError: print 'You must enter a directory.' def get_text(): while True: try: text = raw_input('Text: ').lower() assert text return text except AssertionError: print 'You must enter some text.' def do_search(directory, text): results = list() for dirpath, dirnames, filenames in os.walk(directory): for name in filenames: full_path = os.path.join(dirpath, name) if text in file(full_path).read().lower(): results.append(full_path) return results def finish(results): print for filename in results: print filename raw_input('Done.') if __name__ == '__main__': main()
Regular Expressions could be used to implement this program, but may confuse some people to begin with. If IDLE is not desired for searching files, then the code above can accomplish the like-minded task of finding the file that is difficult to find.
os.walk(). You should have a look at os.walk() ( http://docs.python.org/lib/os-file-dir.html#l2h-2707 ).