How do I create a file in python without overwriting an existing file

前端 未结 3 1079
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-05 07:41

Currently I have a loop that tries to find an unused filename by adding suffixes to a filename string. Once it fails to find a file, it uses the name that failed to open a

3条回答
  •  一生所求
    2020-12-05 08:31

    If you are concerned about a race condition, you can create a temporary file and then rename it.

    >>> import os
    >>> import tempfile
    >>> f = tempfile.NamedTemporaryFile(delete=False)
    >>> f.name
    'c:\\users\\hughdb~1\\appdata\\local\\temp\\tmpsmdl53'
    >>> f.write("Hello world")
    >>> f.close()
    >>> os.rename(f.name, r'C:\foo.txt')
    >>> if os.path.exists(r'C:\foo.txt') :
    ...     print 'File exists'
    ...
    File exists
    

    Alternatively, you can create the files using a uuid in the name. Stackoverflow item on this.

    >>> import uuid
    >>> str(uuid.uuid1())
    '64362370-93ef-11de-bf06-0023ae0b04b8'
    

提交回复
热议问题