[Tutor] files
Alan Gauld
alan.gauld at btinternet.com
Sun Sep 2 01:51:45 CEST 2007
"Ricardo Aráoz" <ricaraoz at gmail.com> wrote
>>>> In = open(r'E:\MyDir\MyDoc.txt', 'rb')
>>>> Out = open(r'E:\MyDir\MyUpperDoc.txt', 'wb')
>>>> Out.write(In.read().upper())
>>>> In.close()
>>>> Out.close()
>
> Pretty simple program. The question is : If 'In' is a HUGE file, how
> does Python process it?
Exactly as it does for a small file... :-)
> Does it treat it as a stream and passes bytes to
> 'Out' as soon as they are coming in, or does it read the whole file
> into
> memory and then passes the whole file to 'Out'?
You have told it to do the latter.
read() reads the whole file into a string so
Out.write(In.read().upper())
Is exactly the same as
temp = In.read()
temp = temp.upper()
Out.write(temp)
Just because you put it in one line doesn't chanhge how
Python interprets it.
> If the answer is the first choice I would like to know how to
> instruct
> Python to do the second choice.
I'm guessing you mean this the other way around?
You can read the file line by line
for line in In:
Out.write(line.upper())
HTH,
--
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld
More information about the Tutor
mailing list