problem with read() write()

Dave Angel davea at ieee.org
Sat Oct 31 16:01:56 CET 2009


Zeynel wrote:
> On Oct 31, 9:55 am, "Alf P. Steinbach" <al... at start.no> wrote:
>   
>> * Zeynel:
>>
>>
>>
>>
>>
>>     
>>> On Oct 31, 9:23 am, "Alf P. Steinbach" <al... at start.no> wrote:
>>>       
>>>> * Zeynel:
>>>>         
>>>>> Hello,
>>>>> I've been studying the official tutorial, so far it's been fun, but
>>>>> today I ran into a problem with the write(). So, I open the file pw
>>>>> and write "hello" and read:
>>>>> f =pen("pw", "r+")
>>>>> f.write("hello")
>>>>> f.read()
>>>>> But read() returns a bunch of what looks like meta code:
>>>>> "ont': 1, 'center_insert_even\xc4\x00K\x02\xe8\xe1[\x02z\x8e
>>>>> \xa5\x02\x0b
>>>>> \x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0'QUEUE'\np1\n
>>>>> (S'exec' ....
>>>>> What am I doing wrong? Thank you.
>>>>>           
>>>> After the 'write' the current position in the file is after the "hello", so
>>>> reading will read further content from there.
>>>>         
>>>> The following works (disclaimer: I'm utter newbie in Python, and didn't consult
>>>> the documentation, and it's the first time I've seen the Python 'open'):
>>>>         
>>>> f =pen("pw", "r+")
>>>> f.write( "hello" )
>>>> f.seek( 0 )  # Go back to start of file
>>>> f.read()
>>>> f.close()
>>>>         
>>>> Cheers & hth.,
>>>>         
>>>> - Alf
>>>>         
>>> Thanks, but it didn't work for me. I still get the meta file. Although
>>> I see that "hello" is there.
>>>       
>> Just a thought: try "w+" instead of "r+".
>>
>> Because if you do
>>
>>    print( open.__doc__ )
>>
>> as I recall it said something about "w" truncating the file?
>>
>> Cheers & hth.,
>>
>> - Alf
>>     
>
> No :) I still got the same thing.
>
>   
When you ran the program, the file already existed.  So you're mixing 
the old content and the new.  If you don't want that, then don't use r+. 

When testing, you should start with the system in a known state.  Try 
initializing (with a text editor for example) that file before trying 
the program.

And if it still gives you problems, show us the data in the file before 
running your code, your new code, and the results you get.   One thing 
that'd be useful is to actually assign the results of the read() 
function to a variable and print it.

DaveA




More information about the Python-list mailing list