W moim programie wiele procesów może próbować utworzyć plik, jeśli plik obecnie nie istnieje. Teraz chcę się upewnić, że tylko jeden z procesów jest w stanie utworzyć plik, a reszta otrzyma wyjątek, jeśli już został utworzony (rodzaj bezpiecznego procesu i bezpieczna implementacja open(). Jak mogę to osiągnąć w python.jak utworzyć plik i wyrzucić wyjątek, jeśli już istnieje
Dla jasności, chcę, aby plik został utworzony, jeśli nie istnieje. Ale jeśli już istnieje, wyrzuć wyjątek. A to wszystko powinno się wydarzyć atomowo.
Ten kod zapewnia pożądaną funkcjonalność. – Adobri
@naxa, dokumentacja Pythona 3.3+ ['open (..., 'x')'] (https://docs.python.org/3/library/functions.html#open) nie ma żadnej dostępności 'informacja; co zwykle oznacza, że obsługuje wszystkie platformy. Podczas gdy dokumentacja Pythona 2.x ['os.fdopen'] (https://docs.python.org/2/library/os.html#os.fdopen) wspomina o dostępności: Unix, Windows. – falsetru
@naxa, zgodnie ze stałymi flagami [the documentation: open()) (https://docs.python.org/2/library/os.html#open-flag-constants): Poniższe stałe są opcjami dla flag parametr do funkcji open(). Można je połączyć za pomocą operatora bitowego OR |. Niektóre z nich nie są dostępne na wszystkich platformach. Aby uzyskać opisy ich dostępności i użycia, należy zapoznać się z podręcznikiem open (2) na stronie Unix lub MSDN w systemie Windows. – falsetru