检查文件或路径是否存在

使用 EAFP 编码样式和 try 打开它。

import errno

try:
    with open(path) as f:
        # File exists
except IOError as e:
    # Raise the exception if it is not ENOENT (No such file or directory)
    if e.errno != errno.ENOENT:
        raise
    # No such file or directory

如果另一个进程在检查之间和使用它时删除了文件,这也将避免竞争条件。在以下情况下可能会发生这种竞争情况:

  • 使用 os 模块:

    import os
    os.path.isfile('/path/to/some/file.txt')
    

Python 3.x >= 3.4

  • 使用 pathlib

    import pathlib
    path = pathlib.Path('/path/to/some/file.txt')
    if path.is_file():
        ...
    

要检查给定路径是否存在,你可以按照上述 EAFP 过程,或明确检查路径:

import os
path = "/home/myFiles/directory1"

if os.path.exists(path):
    ## Do stuff