python os.fdopen (os.open ()) não pode ser usado para escrever?

Esta questão tem a ver com a resposta paraEscrever arquivo com permissões específicas em Python para abrir um arquivo para gravação (em python) com permissões específicas.

O código na resposta parece:

with os.fdopen(os.open('foo', os.O_APPEND | os.O_CREAT, 0o644)) as out:
  out.write("hello\n")

Este código em 2.7.1 (minha empresa não possui o 2.7.3 instalado) produz:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
IOError: File not open for writing

os.fdopen tem seu próprio argumento de modo, mas definir isso não ajuda:

>>> with os.fdopen(os.open('foo', os.O_APPEND | os.O_CREAT, 0o644), 'a') as out:
...   out.write("hello\n")
...
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument

Resumindo, eu não consegui descobrir como escrever realmente em um arquivo que foi aberto viaos.fdopen eos.open. Alguma ideia? Bug conhecido em 2.7.1?

Desde já, obrigado!

questionAnswers(2)

yourAnswerToTheQuestion