<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><ol><li><font face="Arial" color="#0000ff"><span>Anyone knows 
  whet's the limitation on cStringIO.StringIO() objects ?</span></font></li>
  <li><font face="Arial" color="#0000ff"><span>Could you 
  suggest a better way to create a string that contains the concatenation of 
  several big files ?</span></font></li></ol></div></blockquote><div>This isn't a limit in cStringIO.StringIO, but a limit on the amount of memory a process is able to allocate from the OS. There's no real way around it-- but you can take a different approach.</div>

<div><br></div><div>You have to get the memory somewhere, but if what you're combining can't fit into memory (generally, 2 GB, but it depends on OS and platform), you can use memory from a different source-- the hard-drive for instance.</div>

<div><br></div><div>I would suggest you create a temporary file somewhere, and instead of reading the contents into memory, read it in chunks and write it to this temporary file, then go on and do the rest. That way you'll never have so much in memory that you hit the limits. When this is done, you can move this temporary file to where you want it, or read from it and pass its output somewhere.</div>

<div><br></div><div>--S </div></div>