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__(sel f, 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(se lf.directory, file)
if os.path.isdir(f ullname) and not
os.path.islink( fullname):
self.stack.appe nd(fullname)
else:
return fullname
for file in DirectoryWalker ("."):
# divide files names into path and extention
path, ext = os.path.splitex t(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(col or)
for line in fileContent:
if not line.startswith ("\n"):
index.write(lin e)
index.write("\n ")
index.close()