Python 3 read() function

MRAB google at mrabarnett.plus.com
Thu Dec 4 12:51:46 EST 2008


Cro wrote:
> Good day.
> I have installed Python 3 and i have a problem with the builtin read()
> function.
> 
> [code]
> huge = open ( 'C:/HUGE_FILE.pcl', 'rb', 0 )
> import io
> vContent = io.StringIO()
> vContent = huge.read() # This line takes hours to process !!!
> vSplitContent = vContent.split
> ( 'BIN;SP1;PW0.3,1;PA100,700;PD625,700;PU;' ) # This one i have neve
> tried...
> [/code]
> 
> The same thing, in Python 2.5 :
> 
> [code]
> huge = open ( 'C:/HUGE_FILE.pcl', 'rb', 0 )
> import StringIO
> vContent = StringIO.StringIO()
> vContent = huge.read() # This line takes 2 seconds !!!
> vSplitContent = vContent.split
> ( 'BIN;SP1;PW0.3,1;PA100,700;PD625,700;PU;' ) # This takes a few
> seconds...
> [/code]
> 
> My "HUGE_FILE" has about 900 MB ...
> I know this is not the best method to open the file and split the
> content by that code...
> Can anyone please suggest a good method to split the file with that
> code very fast, in Python 3 ?
> The memory is not important for me, i have 4GB of RAM and i rarely use
> more than 300 MB of it.
> 
> Thank you very very much.
 >
Can't you read it without StringIO?

huge = open('C:/HUGE_FILE.pcl', 'rb', 0)
vContent = huge.read()
vSplitContent = vContent.split(b'BIN;SP1;PW0.3,1;PA100,700;PD625,700;PU;')

vContent will contain a bytestring (bytes), so I think you need to split 
on a bytestring b'...' (in Python 3 unmarked string literals are Unicode).



More information about the Python-list mailing list