[Tutor] Need help appending data to a logfile

Dave Angel davea at davea.name
Mon Jun 17 20:17:25 CEST 2013


On 06/17/2013 01:36 PM, Matt D wrote:
> Hey,
> I wrote some simple code to write data to a logfile and it works pretty
> well (thanks guys).  Now my problem is that every time i run the program
> the old logfile.txt is overwritten.  I need to be able to stop and start
> the program without overwriting, or losing, the old data.  here is the
> relavent code:
>
>   #  central part of the program
>   #  lays out the GUI panel
>   #  omitted lots for our purposes here
>   Class panel(wx.Panel):
>
>          #  open a file named "logfile.txt" in "w" writing mode.
>          #  this will create the file if it doesn't exist.
>          self.logfile = open('logfile.txt', 'w')
>
>   # Updates the TextCtrl field values
>   # and logs TextCtrl field values
>   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()))))
> 	# loop through each of the TextCtrl objects
> 	for k,v in self.fields.items():
>              #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')
> 	#end logger code ----------------
>
> In addition to not deleting the old data, it would be awesome to have
> some sort of wxPython widget that would give the user the ability to
> 'save as', or name and save the file, from the GUI panel.
> Thanks!
>

Clearly you didn't absorb or act on much of the advice from the last 
time.  So this time I'll just give you a brief hint.

Don't use write mode when opening the file.  Find the docs on open(), 
and see what other choices there are.



-- 
DaveA


More information about the Tutor mailing list