Was bewirkt das Abschneiden einer Datei beim Öffnen einer Datei mit der Option w + in Python?


Beste Antwort

Sie fragen: Was bewirkt das Abschneiden einer Datei beim Öffnen einer Datei mit der Option w + in Python?

Das Abschneiden einer Datei auf Null bedeutet, dass der gesamte Inhalt verworfen wird: Die Dateigröße wird 0, sodass sie leer wird (und die Daten sind weg), aber die Datei ist noch im Dateisystem vorhanden.

Unter UNIX und UNIX-ähnlichen Betriebssystemen (und im Allgemeinen unter POSIX -kompatible Betriebssysteme) gibt es den Systemaufruf truncate(2), mit dem ein Teil oder der gesamte Inhalt einer Datei (gegen Ende einer Datei) verworfen werden kann.

Auf solchen Systemen kann der Systemaufruf open(2) mit dem Parameter flags angegeben werden O\_TRUNC -Flag, das angibt, dass der Dateiinhalt beim Öffnen auf 0 gekürzt werden soll.

Ebenso die C-Standard-E / A-Bibliothek Für die Funktion fopen() kann ein Öffnungsmodus w+ angegeben werden, der angibt, dass die Datei zum Schreiben geöffnet wird und erstellt werden sollte, wenn dies nicht der Fall ist. t existiert oder dass es auf 0 gekürzt werden sollte, wenn es bereits existiert.

Und da die Funktion open() in Python ähnlich wie die Funktion Funktion in C, w+ bedeutet das Abschneiden des Dateiinhalts auf die Länge Null, bevor etwas geschrieben wird.

Antwort

Die Frage braucht mehr Klarheit. Wer macht die Kürzung? Der gleiche Python-Prozess, der den Stream geöffnet hat, oder ein anderer Prozess? Schreibt die Python-Datei in die Datei, während ein anderer Thread / Prozess sie abschneidet? Findet die Kürzungsoperation in einer Schleife statt oder so?

Die Antwort auf Ihre Frage hängt davon ab, was mit der Datei passiert, wenn diese Schreib- und Kürzungsoperationen ausgeführt werden.

Auch… protip: schau nicht auf python2 docs. Schauen Sie sich die Python3-Dokumente an. Und verwenden Sie Python3 im Allgemeinen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.