Deutsch English Français Italiano |
<mailman.15.1720392424.2981.python-list@python.org> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder8.news.weretis.net!fu-berlin.de!uni-berlin.de!not-for-mail From: MRAB <python@mrabarnett.plus.com> Newsgroups: comp.lang.python Subject: Re: Best (simplest) way to share data between processes Date: Sun, 7 Jul 2024 23:47:01 +0100 Lines: 20 Message-ID: <mailman.15.1720392424.2981.python-list@python.org> References: <9a8nlk-jb81.ln1@q957.zbmc.eu> <B4D7CB24-28E5-4CAC-AA42-5C47C3F6F470@barrys-emacs.org> <6e86fff1-d24c-42c9-bc72-7e22757686ec@mrabarnett.plus.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de iaoOKKQhnD8j8Z4ST+GLWw8+wNT/TlrAIkQB45Skc05g== Cancel-Lock: sha1:GQTrPy2svG1dF5ewfPsnZsK6sQU= sha256:2duPQ3HL4k1luvhCDffPMOJ240jhmNhuS85UDTS8OjQ= Return-Path: <python@mrabarnett.plus.com> X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org Authentication-Results: mail.python.org; dkim=pass reason="2048-bit key; unprotected key" header.d=plus.com header.i=@plus.com header.b=Ny/W/QCn; dkim-adsp=none (unprotected policy); dkim-atps=neutral X-Spam-Status: OK 0.009 X-Spam-Evidence: '*H*': 0.98; '*S*': 0.00; 'jul': 0.04; 'from:addr:python': 0.09; 'linux': 0.09; 'received:192.168.1.64': 0.09; 'subject:between': 0.09; 'barry': 0.16; 'behaviour': 0.16; 'both.': 0.16; 'from:addr:mrabarnett.plus.com': 0.16; 'from:name:mrab': 0.16; 'instead.': 0.16; 'message- id:@mrabarnett.plus.com': 0.16; 'received:84.93': 0.16; 'received:84.93.230': 0.16; 'received:plus.net': 0.16; 'subject:way': 0.16; 'windows.': 0.16; 'wrote:': 0.16; 'values': 0.17; 'to:addr:python-list': 0.20; "i'd": 0.24; 'pattern': 0.26; 'old': 0.27; 'chris': 0.28; 'header:User-Agent:1': 0.30; 'python- list': 0.32; 'received:192.168.1': 0.32; 'but': 0.32; 'there': 0.33; 'windows': 0.34; 'same': 0.34; 'header:In-Reply-To:1': 0.34; 'close': 0.35; 'target': 0.36; 'received:192.168': 0.37; 'file': 0.38; 'use': 0.39; 'both': 0.40; 'skip:o 10': 0.61; 'lock': 0.64; 'guaranteed': 0.67; 'prevent': 0.67; 'clarity': 0.69; 'mix': 0.69; 'contents,': 0.84; 'simultaneous': 0.84; 'tmp': 0.84; 'green': 0.96 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plus.com; s=042019; t=1720392422; bh=dF4UNapqHZpfXxobNLAUHzvla/rXqLtYRC3WxtMMoCo=; h=Date:Subject:To:References:From:In-Reply-To; b=Ny/W/QCn32QccgiGRGETghChymtQspuWRM325og0lKh7sL2Qw+1WE0UcloFFYmfJE 5lUDvT3+FjoS/umEQhRpeeQ9+e93uB2/WDdBVDPC5v1i4GDy2X1+gohVqlL/mnN03I MaUh6rqcc7iTBMO0H5rnk1UqPRHLWKUglTtHFHtgeCRK1eakpCaewKLCiiIkqj0V+t bCvXLN/jeE1ssQfEx9mJXU2SudQw1l9yS19ahJK0J9K2WNGKPvoJj4gfAuTeWNIGN7 H3GoVhevYaXDX+HshUTGgsBbKsmOGIImY4IG5m13e1xukf8chRcnX+d/ip6UAc87QX RPu/9TOEvvjLQ== X-Clacks-Overhead: "GNU Terry Pratchett" X-CM-Score: 0.00 X-CNFS-Analysis: v=2.4 cv=AfoSHGXG c=1 sm=1 tr=0 ts=668b1ae6 a=0nF1XD0wxitMEM03M9B4ZQ==:117 a=0nF1XD0wxitMEM03M9B4ZQ==:17 a=IkcTkHD0fZMA:10 a=8AHkEIZyAAAA:8 a=D8jjOKPysQHQejHcGhQA:9 a=QEXdDO2ut3YA:10 a=zZCYzV9kfG8A:10 X-AUTH: mrabarnett@:2500 User-Agent: Mozilla Thunderbird Content-Language: en-GB In-Reply-To: <B4D7CB24-28E5-4CAC-AA42-5C47C3F6F470@barrys-emacs.org> X-CMAE-Envelope: MS4xfKNAfY4Y2WI4dBK4ygthiUoZYrILj8qdtfXu3u5CuzDcHn2hEXPe288HpbTFV/DtTefKtw9XyXxe+LKhdFPsv89761vWPDBLRt/yQ5p7+6FDxZB9Y7F1 XMX95ofdQ3PHL/vT3W66al2bWd35uflAAKGR9fpetU2YOfktmTEn16BNaDMSYnvO1ANvq06/2Sl65ataDtWS8lgD8GHsbixnsac= X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.39 Precedence: list List-Id: General discussion list for the Python programming language <python-list.python.org> List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe> List-Archive: <https://mail.python.org/pipermail/python-list/> List-Post: <mailto:python-list@python.org> List-Help: <mailto:python-list-request@python.org?subject=help> List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe> X-Mailman-Original-Message-ID: <6e86fff1-d24c-42c9-bc72-7e22757686ec@mrabarnett.plus.com> X-Mailman-Original-References: <9a8nlk-jb81.ln1@q957.zbmc.eu> <B4D7CB24-28E5-4CAC-AA42-5C47C3F6F470@barrys-emacs.org> Bytes: 5113 On 2024-07-07 23:27, Barry via Python-list wrote: > > >> On 7 Jul 2024, at 22:13, Chris Green via Python-list <python-list@python.org> wrote: >> >> a simple file lock can then >> be used to prevent simultaneous access (well, simultaneous access when >> the writing process is writing). > > There is a simple pattern to make this robust. > > Write new values to a tmp file. > Close the tmp file. > Then use os.rename(tmpfile, productionfile). > > This is guaranteed that any process that reads the file will only see all the old file contents or all the new file contents, never a mix of both. > For clarity I'd recommend os.replace instead. This is because on Windows os.rename it would complain if the target file already exists, but os.replace has the same behaviour on both Linux and Windows.