Pythoncard question

bryan rasmussen rasmussen.bryan at gmail.com
Thu May 4 08:13:17 EDT 2006


Hi, I'm doing a sort of symbolic linking app in Windows for my own
enjoyment, and figured I would do it in python for the same reason +
learning the language.

The following functions could obviously do with some refactoring. One
obvious thing would be to make wordsetter and wordsforfolder more
generic, and just pass a few extra parameters. But that seems sort of
stupid.

Any suggestions on refactoring here? other improvements?


def getwordslist(word):
  thisword = wordpath + word + ".xml"
  if exists(thisword):
	doc =  xml.dom.minidom.parse(thisword)
	loc =  doc.childNodes[0]
	for i in range(0, len(loc.childNodes)):
          if (loc.childNodes[i].firstChild.data == thispath):
		break
	  else:
		wordsetter(thisword,doc,loc)
		

  else :
		doc = xml.dom.minidom.Document()
		loc = doc.createElementNS("", "locations")
		doc.appendChild(loc)
		wordsetter(thisword,doc,loc)

  return None

def getfolderwords(word):

  if exists(normpath(folderwords)):
	doc =  xml.dom.minidom.parse(folderwords)
	loc =  doc.childNodes[0]
	wordsforfolder(word,doc,loc)
		

  else :
	
	doc = xml.dom.minidom.Document()
     	loc = doc.createElementNS("", "wordlist")
	doc.appendChild(loc)
        xml.dom.ext.PrettyPrint(doc, open(normpath(folderwords), "w"))
	wordsforfolder(word,doc,loc)

  return None
	

def wordsetter(word,doc,loc):
	thisloc = doc.createElementNS("", "location")
	xexpr= "//location[.='" + thispath + "']"
	
	xp = Evaluate(xexpr,doc.documentElement)
	if len(xp) < 1:

		loc.appendChild(thisloc)
		text = doc.createTextNode(thispath)
		thisloc.appendChild(text)
		fi = open(word, "w")
		fi.write(doc.toxml())


def wordsforfolder(word,doc,loc):
	thisloc = doc.createElementNS("", "word")
	xexpr= "//word[.='" + word + "']"
	
	xp = Evaluate(xexpr,doc.documentElement)
	if len(xp) < 1:

		loc.appendChild(thisloc)
		text = doc.createTextNode(word)
		thisloc.appendChild(text)
		fi = open(folderwords, "w")
		fi.write(doc.toxml())
	

Cheers,
Bryan Rasmussen



More information about the Python-list mailing list