目录
问题背景
在某些场景中,我们需要在使用文件或者文件夹前判断一下其是否存在,以防出现一些意外的报错,为了更好的使用该功能,可以把这个功能封装成为一个函数,具体实现如下:
功能实现
python
def check_path_exist(path,log)
if os.path.exists(path):
return True
else:
dirname=os.path.dirname(path)
basename=os.path.basename(path)
log.write("ERROR:File/Dir[%s]does not existed in %s.\n"%(basename,dirname))
return False
代码解析
os.path 库主要针对路径、文件名和目录名进行操作。
os.path.exists(path)
判断传入路径或文件描述符,判断路径是否存在或者描述符是否有效。因为os.path还有其他判断文件和路径的函数,为了方便,我们使用exists就可以包含 isfile()、isdir() 和 islink() 这些函数,使用这一个函数判断文件或目录或软链接是否存在就可以。
print(os.path.exists('/project/test'))
#输出:True print(os.path.exists('/project/test/test.py')) #输出:True
os.path.dirname(path)
返回path的路径部分,若path指向一个文件,则返回文件所在的目录路径; 若path指向一个目录,则返回此目录上层目录的路径。此函数就是以path中最后一个 \ 或 / 为标识截取的字符串。
print(os.path.dirname('/project/test/'))
#输出:'/project/test' print(os.path.dirname('/project/test'))
#输出:'/project'
os.path.basename(path)
该函数用于获取路径中的文件名部分,函数会返回路径中的最后一部分,即文件名或目录名。如果路径是以斜杠(/)结尾,则返回空字符串。
print(os.path.exists('/project/test/'))
#输出:空
print(os.path.exists('/project/test/test.py')) #输出:test.py