Seite 1 von 1

lock für datei beim schreiben

Verfasst: Dienstag 11. Dezember 2007, 19:03
von philippe
guten abend allerseits

folgendes szenario:

1) n unabhängige prozesse schreiben an das ende einer textdatei bis zu einer maximalen länge von 200 zeilen (\n).
2) ist die textdatei "voll", also 200 einträge, wird eine neue datei erstellt
3) das schreiben, zählen etc. wird von einer klasse kontrolliert - jeder prozess instanziert diese klasse, resp. hat eine unabhängige instanz. das zählen der linien und das eventuelle erstellen eines neuen files geschieht im def __init__ -teil.
4) es dürfen keine einträge verlohren gehen, resp. daten überschrieben werden.


folgendes möchte ich erreichen:

die datei sperren, wenn eine instanz mit ihr beschäftigt ist (zählen der linien und schreiben) - wie kann ich das erreichen resp. implementieren? gibt es eine möglichkeit in pyhton das lesen und schreiben zurfristig zu verbieten oder wie kann ich eine (art) semaphore in python implementieren (global, also nicht nur in python, da mehrere python prozesse darauf zugreifen....)

für hinweise wäre ich äusserst dankbar.


mfg

phililppe





für einen tip wäre ich äusserst dankbar

mit freundlichem gruss

philippe

Verfasst: Dienstag 11. Dezember 2007, 19:11
von Leonidas
Hallo philippe, willkommen im Forum,

Du kannst einfach ein Lock-File verwenden oder unter Unices die Funktionen aus fcntl.

Verfasst: Dienstag 11. Dezember 2007, 19:22
von philippe
aaaahhhh! besten dank leonidas, das werd ich gleich mal ausprobieren!

Verfasst: Dienstag 11. Dezember 2007, 19:24
von veers
Werden Dateien unter Windows nicht sowieso immer gelockt falls nichts anderes angegeben wird?