[Python-ideas] Add create mode to open()

M.-A. Lemburg mal at egenix.com
Wed Aug 17 11:52:03 CEST 2011


Antoine Pitrou wrote:
> On Wed, 17 Aug 2011 14:11:32 +1000
> Nick Coghlan <ncoghlan at gmail.com> wrote:
>> On Wed, Aug 17, 2011 at 1:43 PM, Devin Jeanpierre
>> <jeanpierreda at gmail.com> wrote:
>>> I'd also point out that for those that don't want race conditions,
>>> Python is discouraging. The correct incantation involves two
>>> undocumented constants, plus a unique and rarely used way of opening
>>> files that involves unix file descriptors.
>>
>> FWIW, when you control the filename, you can include an additional
>> subdirectory precisely for the exception when a second process
>> attempts to create the same subdirectory.
> 
> How do you create a directory and a file atomically?

On Windows, directories are created atomically. On Unix,
too, but symlinks are faster. You can use those to implement
cooperative file locks in a fairly cross-platform way.

See e.g. mx.Misc.FileLock in
http://www.egenix.com/products/python/mxBase/

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Aug 17 2011)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
2011-10-04: PyCon DE 2011, Leipzig, Germany                48 days to go

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/



More information about the Python-ideas mailing list