All, I have the following code: for fileTarget in dircache.listdir("directory"): (dirName, fileName) = os.path.split(fileTarget) f = open(fileTarget).readlines() copying = False for i in range(len(f)): for x in range (0,24,1): if (re.search(self.Info[x][3], f[i])): #If we have a match for our start of section... if (self.Info[x][2] == True): #And it's a section we care about... copying = True #Let's start copying the lines out to the temporary file... if (os.name == "posix"): if (self.checkbox25.GetValue() == False): tempfileName = "tempdir/" + self.Info[x][0] + "_tmp_" + fileName + ".txt" else: tempfileName = self.textctrl07.GetValue() + "/" + self.Info[x][0] + "_xyz.txt" else: if (self.checkbox25.GetValue() == False): tempfileName = "tempdir\\" + self.Info[x][0] + "_tmp_" + fileName + ".txt" else: tempfileName = self.textctrl07.GetValue() + "\\" + self.Info[x][0] + "_xyz.txt" else: copying = False if (re.search(self.Info[x][4], f[i])): #Now we've matched the end of our section... copying = False #So let's stop copying out to the temporary file... if (copying == True): g = open(tempfileName, 'a') #Open that file in append mode... g.write(f[i]) #Write the line... g.close()
This code works PERFECTLY in Linux. Where I have a match in the file I'm processing, it gets cut out from the start of the match until the end of the match, and written to the temporary file in tempdir. It does not work in Windows. It does not create or write to the temporary file AT ALL. It creates the tempdir directory with no problem. Here's the kicker: it works perfectly in Windows if Windows is running in VMware on a Linux host! (I assume that that's because VMware is passing some call to the host.) Can anyone tell me what it is that I'm missing which would prevent the file from being created on Windows natively? I'm sorry I can't provide any more of the code, and I know that that will hamper your efforts in helping me, so I apologise up front. Assumptions: You can assume self.checkbox25.GetValue() is always false for now, and self.Info[x][0] contains a two character string like "00" or "09" or "14". There is always a match in the fileTarget, so self.Info[x][2] will always be true at some point, as will self.Info[x][4]. I am cutting an HTML file at predetermined comment sections, and I have control over the HTML files that are being cut. (So I can force the file to match what I need it to match if necessary.) I hope however that it's something obvious that a Python guru here will be able to spot and that this n00b is missing! Thanks! -- http://mail.python.org/mailman/listinfo/python-list