Python os.fdopen (os.open ()) kann nicht zum Schreiben verwendet werden?
Diese Frage hat mit der Antwort auf zu tunSchreiben Sie eine Datei mit bestimmten Berechtigungen in Python zum Öffnen einer Datei zum Schreiben (in Python) mit bestimmten Berechtigungen.
Der Code in der Antwort sieht folgendermaßen aus:
with os.fdopen(os.open('foo', os.O_APPEND | os.O_CREAT, 0o644)) as out:
out.write("hello\n")
Dieser Code in 2.7.1 (in meiner Firma ist 2.7.3 nicht installiert) erzeugt:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IOError: File not open for writing
os.fdopen
hat ein eigenes mode-Argument, aber die Einstellung hilft nicht weiter:
>>> 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
Kurz gesagt, ich konnte nicht herausfinden, wie ich tatsächlich in eine Datei schreiben kann, die über geöffnet wurdeos.fdopen
undos.open
. Irgendwelche Ideen? Bekannter Fehler in 2.7.1?
Danke im Voraus!