PipedreamerGrey wrote: > I'm using the script below (originally from http://effbot.org, given to > me here) to open all of the text files in a directory and its > subdirectories and combine them into one Rich text > file (index.rtf). Now I'm adapting the script to convert all the text > files into individual html files. What I can't figure out is how to > trigger a change in the background value for each folder change (not > each file), so that text is color-coded by folder. > > I have tried to integrate the following snippet into the directory > walker, so that I could later write it to the file as text: color = > random.choice(["#990000", "#CCCCCC", "#000099"]) > That method didn't work, does anyone else have a suggestion? > > > #! /usr/bin/python > import glob > import fileinput > import os > import string > import sys > > index = open("index.rtf", 'w') > > class DirectoryWalker: > # a forward iterator that traverses a directory tree, and > # returns the filename > > def __init__(self, directory): > self.stack = [directory] > self.files = [] > self.index = 0 > > def __getitem__(self, index): > while 1: > try: > file = self.files[self.index] > self.index = self.index + 1 > except IndexError: > # pop next directory from stack > self.directory = self.stack.pop() > self.files = os.listdir(self.directory) > self.index = 0 > else: > # get a filename, eliminate directories from list > fullname = os.path.join(self.directory, file) > if os.path.isdir(fullname) and not > os.path.islink(fullname): > self.stack.append(fullname) > else: > return fullname > > for file in DirectoryWalker("."): > # divide files names into path and extention > path, ext = os.path.splitext(file) > # choose the extention you would like to see in the list > if ext == ".txt": > print file > file = open(file) > fileContent = file.readlines() > # just for example, let's say I want to print the color here as > if in an html tag... > index.write(color) > for line in fileContent: > if not line.startswith("\n"): > index.write(line) > index.write("\n") > > index.close()
Add a color attribute to the DirectoryWalker class, change it when you change directories, return it with the fullname. Change your for loop like so: for color, file in DirectoryWalker("."): # ... I think that should work. HTH, ~Simon -- http://mail.python.org/mailman/listinfo/python-list