Python Mehrere Benutzer Anhängen an die gleiche Datei zur gleichen Zeit
Arbeite ich an einem python-Skript angesprochen wird, über das web, so werden Sie auf mehrere Benutzer hinzufügen möchten, um die gleiche Datei zur gleichen Zeit. Meine Sorge ist, dass dies möglicherweise eine race-Bedingung, wenn mehrere Benutzer schreiben in die gleiche Datei zur gleichen Zeit und es könnte die Datei ist beschädigt.
Beispiel:
#!/usr/bin/env python
g = open("/somepath/somefile.txt", "a")
new_entry = "foobar"
g.write(new_entry)
g.close
Muss ich eine Sperrdatei für diesen, wie dieser Vorgang aussieht riskant.
InformationsquelleAutor der Frage Ray Y | 2012-08-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Datei sperren:
Beachten Sie, dass auf einigen Systemen, ist das sperren von nicht erforderlich, wenn Sie nur schreiben, kleine Puffer, da fügt auf diese Systeme werden Atomare.
InformationsquelleAutor der Antwort phihag
Je nach Plattform/Dateisystem Lage kann dies nicht machbar sein, in einer sicheren Art und Weise (z.B. NFS). Vielleicht können Sie schreiben, um verschiedene Dateien, Zusammenführen und die Ergebnisse anschließend?
InformationsquelleAutor der Antwort Karol Nowak
Wenn Sie dies tun, Betrieb auf Linux, und die cache-Größe ist kleiner als 4 KB, wird die schreib-operation atomar ist und Sie sollte gut sein.
Mehr Lesen Sie hier: Ist Datei Anhängen von atomic in UNIX?
InformationsquelleAutor der Antwort user1767754
Ihnen nicht sagen, um welche Plattform Sie verwenden, aber hier ist ein Modul, das Sie verwenden können, ist cross-Plattform:
Sperren von Dateien in Python
InformationsquelleAutor der Antwort Qiau