Python 判断文件/目录是否存在的几种方式

使用 os 模块

import os
print(os.path.isfile('/tmp'))
print(os.path.isdir('/tmp'))
print(os.path.exists('/tmp'))
print(os.access('/tmp', os.F_OK))

输出结果:

>>> import os
>>> print(os.path.isfile('/tmp'))
False
>>> print(os.path.isdir('/tmp'))
True
>>> print(os.path.exists('/tmp'))
True
>>> print(os.access('/tmp', os.F_OK))
True
>>>

使用 open 函数和异常捕获

filePath = '/tmp'
try:
    file = open(filePath)
    file.close()
except FileNotFoundError:
    print("No such file or directory: '%s'" % filePath)
except IsADirectoryError:
    print("Is a directory: '%s'" % filePath)
except PermissionError:
    print("Permission denied: '%s'" % filePath)
else:
    print("File is exist: '%s'" % filePath)

输出结果:

>>> filePath = '/tmp'
>>> try:
...     file = open(filePath)
...     file.close()
... except FileNotFoundError:
...     print("No such file or directory: '%s'" % filePath)
... except IsADirectoryError:
...     print("Is a directory: '%s'" % filePath)
... except PermissionError:
...     print("Permission denied: '%s'" % filePath)
... else:
...     print("File is exist: '%s'" % filePath)
...
Is a directory: '/tmp'
>>>

使用 pathlib 模块

import pathlib
filePath='/tmp'
path=pathlib.Path(filePath)
print(path.exists())
print(path.is_file())
print(path.is_dir())

输出结果:

>>> import pathlib
>>> filePath='/tmp'
>>> path=pathlib.Path(filePath)
>>> print(path.exists())
True
>>> print(path.is_file())
False
>>> print(path.is_dir())
True
>>>