In eine Textdatei laufend schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Samstag 27. Januar 2007, 18:41

gerold hat geschrieben:
BlackJack hat geschrieben:Na ganz einfach ein exlusives Lock anfordern.
Hi BlackJack!

Was habe ich mit dieser Codezeile gemacht?

Code: Alles auswählen

fcntl.lockf(f.fileno(), fcntl.LOCK_EX)
Ein exklusives Lock angefordert.
Gibt es eine andere Methode, eine Datei wirklich exclusiv zu sperren?
Nein.
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

Samstag 27. Januar 2007, 18:48

@BlackJack:
Jetzt komme ich aber nicht mit (Drehen uns im Kreis):
Einerseits sagst du "Die Locks sind nur freundliche Hinweise. Wenn eine Anwendung nicht fragt ob gelockt ist, dann bringts auch nichts. ", aber andererseits sagst du "Na ganz einfach ein exlusives Lock anfordern.".

:?

Ist das Fazit nun, das es keine 100%ig sichere Methode gibt dafür unter *nixen?
BlackJack

Samstag 27. Januar 2007, 19:07

sape hat geschrieben:@BlackJack:
Jetzt komme ich aber nicht mit (Drehen uns im Kreis):
Einerseits sagst du "Die Locks sind nur freundliche Hinweise. Wenn eine Anwendung nicht fragt ob gelockt ist, dann bringts auch nichts. ", aber andererseits sagst du "Na ganz einfach ein exlusives Lock anfordern.".
Vielleicht liegt's an mir, aber ich sehe den Kreis nicht. Der erste Satz war die Erklärung warum man mit ``echo`` trotzdem in die Datei schreiben konnte und mit `nano` nicht, und der zweite die Antwort wie man freundlich und *atomar* nach einem (exklusiven) Lock fragt. Zwei verschiedene Fragen, zwei verschiedene Antworten, kein Kreis. IMHO.
Ist das Fazit nun, das es keine 100%ig sichere Methode gibt dafür unter *nixen?
Eine Datei zu sperren wenn sich Programme daran zu schaffen machen, die sich nicht um Sperren kümmern? Das geht nicht. Es müssen schon alle mitspielen, die auf die Datei zugreifen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Samstag 27. Januar 2007, 19:34

7crystal7 hat geschrieben:ich möchte in ein Logfile schreiben, das einfach eine Textdatei sein soll. Dabei möchte ich Zeile für Zeile anfügen, während des Zugriffs soll die Datei gelockt werden. Wie mache ich sowas?
Hallo Babsi!

Vor lauter Locking haben wir auf die wahrscheinlich einfachste und beste Lösung vergessen.

Es gibt das Modul ``logging``, welches genau dafür gedacht ist und sich um das evt. notwendige Sperren der Datei kümmert.

http://www.python-forum.de/post-40375.html#40375

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
7crystal7
User
Beiträge: 46
Registriert: Freitag 26. Mai 2006, 18:50

Donnerstag 1. Februar 2007, 17:30

danke :-)
Antworten