On Jun 6, 10:18 pm, [EMAIL PROTECTED] wrote: > 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!
Well, not to be rude, but that's quite a spaghetti code, some of the guilt, however, was for the mailing program that cuts 80+ lines. Others was the use of things like "for i in range(len(f)):" or "if (a == True)". Try checking whether you're trying to write to a path like r"\dir \file.txt" or r"dir\file.txt" instead of r"C:\dir\file.txt" in Windows. If that doesn't solve the problem, tell us a few things: - Any error messages? Or simply nothing is written out? - Has a blank file get created? -- http://mail.python.org/mailman/listinfo/python-list