使用 os 模块

  • 判断文件是否存在
    1
    
    os.path.isfile(path)
  • 判断目录是否存在
    1
    
    os.path.isdir(path)
  • 判断路径是否存在
    1
    2
    3
    4
    5
    
    # 使用 path 模块
    os.path.exists(path)
        
    # 使用 access() 方法
    os.access(path, os.F_OK)

使用 open 函数和异常捕获

如果直接用 open() 函数打开一个不存在的文件时,程序会抛出异常,我们可以通过 try 语句来捕获异常以达到判断文件是否存在的目的。

如果文件不存在,open() 函数会抛出 FileNotFoundError 异常。如果文件无操作权限,则会抛出 PersmissionError 异常。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
filePath = '/path/to/file'

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)

使用 pathlib 模块

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pathlib

path = pathlib.Path('path/to/file')

# 判断路径是否存在
path.exists()

# 判断是否为文件
path.is_file()

# 判断是否为目录
path.is_dir()