Reading your post, I do not see for sure what your actual issue is, so I am taking my best guess: that the file does not contain as much data as would be expected.
On Wed, Aug 22, 2012 at 8:38 AM, William R. Wing (Bill Wing) <w...@mac.com> wrote: > 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') Here, you are opening the data for write ("w"), which will replace the contents of the file each time the file is opened. I am guessing you want append ("a"). > stat = wd.write(str(i)) > stat = wd.writelines(str(x_dates[:i])) > stat = wd.writelines(str(y_rtt[:i])) > wd.close() Also, rather than opening the file, writing to it, then closing it manually, you would be better off using the with statement (presuming Python 2.5+), like so: with open(rtt_data, 'w') as wd: wd.write(str(i)) wd.writelines(str(x_dates[:i])) wd.writelines(str(y_rtt[:i])) In this case, you can be absolutely certain that the file will be closed at the end, even if one of the commands in the middle fails. The way you had it written, if one of the write/writeline, or any of the formatting, fails, the file would be left open for an indeterminate amount of time (the wd variable may be kept around as part of the exception, preventing it from being garbage collected and thus closed). Not a big deal, but more important if you are doing more work with the file open. > > 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 > -- > http://mail.python.org/mailman/listinfo/python-list -- http://mail.python.org/mailman/listinfo/python-list