"Eduardo Vieira" <eduardo.su...@gmail.com> wrote
arq = open('c:/myscripts/simple2.ttt', 'w')
arq.write('The length is %d' % len(a))
res = arq.read()
print res

The print doesn't print the text I had written,

That's because of two things:
a) You opened the file for write only not reading
b) You had moved the file cursor beyond the text you wrote

On (b): the file is conceptually a sequential data stream so think of the cursor in a text editor line. After you have written something you cannot select what you have written unless you cursor back to the beginning. Similarly with a file. Even if you opened it with rw access you would still need to position the cursor (with the seek() call) to the point before what you wrote to be able to read it. After reading it the cursor would once again be at the end of the file and you could write more data.

But if I had closed the file and
then did this: res = open('c:/myscripts/simple2.ttt').read(), it would
have worked.

Thats right because you now open the file for reading, therefore the cursor is repositioned at he start of the file and the mode is set correctly.

HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to