通常在读写文件/文件夹之前要判断其是否存在,不然程序可能会出错。所以,在做任何操作之前,最好先判断文件/文件夹是否存在。
判断方法:
-
os
模块 -
try
语句 -
pathlib
模块
os
模块
-
os.path.exists(path):
判断文件/文件夹是否存在 -
os.path.isdir(path):
判断文件夹是否存在 -
os.path.isfile(path):
判断文件是否存在 os.access(path, mode):
判断文件是否可做读写操作。mode
为操作模式:
-
os.F_OK:
检查文件是否存在 -
os.R_OK:
检查文件是否可读 -
os.W_OK:
检查文件是否可写 -
os.R_OK:
检查文件是否可执行
try
语句
可以在程序中直接使用open()
方法来检查文件是否存在和可读写。如果open的文件不存在,程序会抛出错误,使用try
语句来捕获这个错误。程序无法访问文件,可能有很多原因:
- open的文件不存在,将抛出一个FileNotFoundError的异常;
- open的文件存在,但没有访问权限,会抛出一个PersmissionError的异常。
例如:
try:
with open('/home/spark/scale.py') as file_o:
for line in file_o:
print line
except IOError:#FileNotFoundError异常和PersmissionError异常都是IOError的子类
print 'File is not accessible or not found!'
使用try语句进行判断,处理所有异常非常简单和优雅,而且相比其他不需要引入外部模块。
pathlib
模块
pathlib
模块在Python3
中是內建模块,但在Python2
中需要单独安装。使用pathlib
需要先使用文件路径来创建path
对象,此路径可以是文件名或目录路径。
- 检查路径是否存在:
path = pathlib.Path('path/file')
path.exists()
- 检查路径是否是文件:
path = pathlib.Path('path/file')
path.is_file()