Hi,

I think I'm up against a limitation in cStringIO.StringIO(), but could not find 
any clues on the web, especially not in 
http://docs.python.org/library/stringio.html.

What I have is the following function:

    def concatenate_files(self,filename_array):
        import types

        f = cStringIO.StringIO()
        for filename in filename_array:
            log_stream = LogStream(filename)
            if not isinstance(log_stream, types.NoneType):
                try:
                    string_ = log_stream.input_file.read()
                except AttributeError, e:
                        sys.stderr.write("AttributeError: "+str(e)+"\n")
                        sys.stderr.write("log_stream: "+str(log_stream)+"\n")
            else:
                return(None)

            f.write(string_)
        return (f)

And, when the list of files - in filename_array - is pointing to long/large 
enough files, I get the exception:

Traceback (most recent call last):
  File "svm_ts_tool_in_progress.py", line 244, in OnSelectCell
    self.InspectorViewController(row,col)
  File "svm_ts_tool_in_progress.py", line 1216, in InspectorViewController
    self.InspectorePaneGetRecords(self.req_table, rec)
  File "svm_ts_tool_in_progress.py", line 1315, in InspectorePaneGetRecords
    log_stream = 
ConcatenatedLogStream(self.events_dict[req_table]["db_dict"].keys())
  File "c:\Documents and 
Settings\rbarak\rbarak_devel\dpm16\ConcatenatedLogStream.py", line 31, in 
__init__
    self.input_file = self.concatenate_files(filename_array)
  File "c:\Documents and 
Settings\rbarak\rbarak_devel\dpm16\ConcatenatedLogStream.py", line 47, in 
concatenate_files
    string_ = log_stream.input_file.read()
MemoryError

 1.  Anyone knows whet's the limitation on cStringIO.StringIO() objects ?
 2.  Could you suggest a better way to create a string that contains the 
concatenation of several big files ?

Thanks,
Ron.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to