Re: cannot write to file after close()

2005-09-26 Thread Fredrik Lundh
Rainer Hubovsky wrote:

 Thank you Reinhold, that was the solution. But just because I am curious:
 what is this statement without the parentheses? After all it is a valid
 statement...

it's an expression that fetches the close method object, and throws
it away.  to see what it evaluates to, try running the code from the
interactive prompt (or add a print statement):

 f = open(foo, w)
 f.close
built-in method close of file object at 0x00836B20

also see

http://docs.python.org/ref/exprstmts.html
http://docs.python.org/ref/attribute-references.html

/F



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: cannot write to file after close()

2005-09-26 Thread Reinhold Birkenfeld
Rainer Hubovsky wrote:
 Thank you Reinhold, that was the solution. But just because I am curious:
 what is this statement without the parentheses? After all it is a valid
 statement...
 
   Rainer
 
 
 In article [EMAIL PROTECTED], Reinhold Birkenfeld wrote:
 Is the above exactly your code? If yes, it should be
 
 f.close()
 
 The parentheses are necessary to make the statement a function call.

In addition to what Fredrik said, this can be useful for shortcutting a name,
such as

c = f.close
c()

Reinhold
-- 
http://mail.python.org/mailman/listinfo/python-list


cannot write to file after close()

2005-09-25 Thread Rainer Hubovsky
Hello Python-Gurus,

==
f = open(LOGFILE,'w')
f.write(time + '\n')
f.close

command = 'ping -n 20' + target + '' + LOGFILE
system(command)
==

produces an error saying that a file cannot be accessed because it is used
by another process. I asume it is f which is used but don't understand why.

Any ideas?

Thanks a lot!

Cheers,
  Rainer

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: cannot write to file after close()

2005-09-25 Thread Reinhold Birkenfeld
Rainer Hubovsky wrote:
 Hello Python-Gurus,
 
 ==
 f = open(LOGFILE,'w')
 f.write(time + '\n')
 f.close
 
 command = 'ping -n 20' + target + '' + LOGFILE
 system(command)
 ==
 
 produces an error saying that a file cannot be accessed because it is used
 by another process. I asume it is f which is used but don't understand why.
 
 Any ideas?

Is the above exactly your code? If yes, it should be

f.close()

The parentheses are necessary to make the statement a function call.

Reinhold
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: cannot write to file after close()

2005-09-25 Thread Rainer Hubovsky
Thank you Reinhold, that was the solution. But just because I am curious:
what is this statement without the parentheses? After all it is a valid
statement...

  Rainer


In article [EMAIL PROTECTED], Reinhold Birkenfeld wrote:
 Is the above exactly your code? If yes, it should be
 
 f.close()
 
 The parentheses are necessary to make the statement a function call.
 
 Reinhold

-- 
http://mail.python.org/mailman/listinfo/python-list