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!