On 06/12/2013 09:23 PM, Matt D wrote:

There are other ways a script might change the current directory.  For
example, some naive scripts use os.chdir()

But how is it you don't know what the current directory was when the
code ran?   A simply pwd can tell you, if your prompt doesn't already
reveal it.


hey i found the logfile.  just took a few minutes of looking round.  the
file is logged all out of order

Do you have more than one thread?  Perhaps you have a race condition.

so i have some work to do on that
formatting issue.  if you have a sec can you take a look at my code please?

def update(self, field_values):


        #  logger code---------------
         #  first write the CURRENT date/time
                self.logfile.write('%s,'%(str(strftime("%Y-%m-%d %H:%M:%S", 
gmtime()))))

The return value of strftime is already a str, so why do you call str() on it?

                #  loop through each of the TextCtrl objects
                for k,v in self.fields.items():

items() returns an unordered list;  what order did you actually want?

             #  get the value of the current TextCtrl field
                        f = field_values.get(k, None)
                        if f:
                 #output the value with trailing comma
                                self.logfile.write('%s,'%(str(f)))
                                self.logfile.write('\n')

That looks like a newline, not a comma

                #end logger code ----------------

         #if the field 'duid' == 'hdu', then clear all the fields
                if field_values['duid'] == 'hdu':
                        self.clear()
                #loop through all TextCtrl fields storing the key/value pairs 
in k, v
                for k,v in self.fields.items():

Same ordering problem here. If you have a specific order in mind, you'll need to preserve it in a list, not in a dict.

                        # get the pickle value for this text control
                        f = field_values.get(k, None)
                        # if the value is empty then set the new value
                        if f:
                                v.SetValue(f)


When i open the .csv file the fields are all out of order.  what i want
is have them all in one row beginning with the date/time.  and idea?
Thanks!



A dictionary is unsorted, so those two are probably your problem. As I mentioned above, you can't count on the items() order.

Of course, self.items might not really be a dict. This fragment doesn't prove that one way or another.


--
DaveA
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to