writelines puzzle

William R. Wing (Bill Wing) wrw at mac.com
Wed Aug 22 11:38:55 EDT 2012


In the middle of a longer program that reads and plots data from a log file, I have added the following five lines (rtt_data is fully qualified file name):

wd = open(rtt_data, 'w')
stat = wd.write(str(i))
stat = wd.writelines(str(x_dates[:i]))
stat = wd.writelines(str(y_rtt[:i]))
wd.close()

The value of i is unknown before I have read through the input log file, but is typically in the neighborhood of 2500.  x_dates is a list of time stamps from the date2num method, that is values of the form 734716.72445602, day number plus decimal fraction of a day.  y_rtt is a list of three- or four-digit floating point numbers.  The x_dates and y_rtt lists are complete and plot correctly using matplotlib.  Reading and parsing the input log file and extracting the data I need is time consuming, so I decided to save the data for further analysis without the overhead of reading and parsing it every time.

Much to my surprise, when I looked at the output file, it only contained 160 characters.  Catting produces:

StraylightPro:Logs wrw$ cat RTT_monitor.dat
2354[ 734716.72185185  734716.72233796  734716.72445602 ...,  734737.4440162
  734737.45097222  734737.45766204][ 240.    28.5   73.3 ...,   28.4   27.4   26.4]

Clearly I'm missing something fundamental about using the writelines method, and I'm sure it will be a DUH moment for me, but I'd sure appreciate someone telling me how to get that data all written out.  I certainly don't insist on writelines, but I would like the file to be human-readable.

Python 2.7.3
OS-X 10.8

Thanks,
Bill



More information about the Python-list mailing list