利用python检查文件或文件夹是否存在

在深度学习中,我们经常会用到判断一个文件或者文件夹是否存在,如果不存在的话那么我们需要建立一个。那么判断文件和文件夹是否存在常用的有哪些函数了?这里逐一给您娓娓道来。

0. 准备

首先我们建立如下所示的层级结构,我们在/home/os_test之下,建立起一个文件夹dir还有两个txt文件file.txt,link.txt
在这里插入图片描述

因为我们这里是使用python代码,需要用到os这个包,所以我们导入import os

1. 检查某个文件是否存在: os.path.isfile

1.1 函数定义:

os.path.isfile(path)

  • Return True if path is an existing regular file. This follows symbolic links, so both islink() and isfile() can be true for the same path.

注意:这里的path是文件所处的路径,注意后缀名也是需要加上的。

1.2 具体使用

import os  
os.path.isfile('./file.txt')    # True  
os.path.isfile('./link.txt')    # True  
os.path.isfile('./file')       # False, 需要指定后缀名,否则不能识别
os.path.isfile('./link')       # False
os.path.isfile('./dir')    # False  

在这里插入图片描述

2. 检查某个文件夹是否存在: os.path.isdir

2.1 函数定义:

os.path.isdir(path)

  • Return True if path is an existing directory. This follows symbolic links, so both islink() and isdir() can be true for the same path.

注意:这里的path是文件所处的路径。

2.2 具体使用

import os  
os.path.isdir('./file.txt')    # False  
os.path.isdir('./link.txt')    # False  
os.path.isdir('./file')       # False
os.path.isdir('./link')       # False
os.path.isdir('./dir')    # True,只有这个才是真正的文件夹,所以返回True  

在这里插入图片描述

3. 检查某个文件或者文件夹是否存在: os.path.exists

3.1 函数定义:

os.path.exists(path)

  • Return True if path refers to an existing path. Returns False for broken symbolic links. On some platforms, this function may return False if permission is not granted to execute os.stat() on the requested file, even if the path physically exists.

注意:文件或者文件夹都返回True。

3.2 具体使用

import os  
os.path.exists('./file.txt')    # True  文件返回true
os.path.exists('./link.txt')    # True  
os.path.exists('./file')       # False
os.path.exists('./link')       # False
os.path.exists('./dir')    # True 文件夹也返回True  

在这里插入图片描述

4. 扩展: os.path.exists和os.path.isfile的不同

这个问题也出现在stackoverflow上,Difference between os.path.exists and os.path.isfile in python. 引用Jan-Philip Gehrcke回答:

    正如您已经发现的那样,exists和isfile之间的区别在于前者在给定路径是目录或文件的情况下返回True,而后者仅在路径指向文件时返回True。
    从技术角度来看,目录和文件非常相似。 文件可以包含任何类型的数据。
    目录只是文件系统中的一个特殊条目(至少在Unix操作系统上它只是一个特殊文件),表示它可能包含文件和其他目录。 它是构建数据结构的有用方法。 使用目录,您可以按层次结构组织数据。
    特别是在Windows世界中,目录通常称为“文件夹”。 我相信你自己正在使用“文件夹”来组织你的文件。路径是指向文件系统中资源的明确指针。 它可以指向文件或目录。

猜你喜欢

转载自blog.csdn.net/alxe_made/article/details/84578844
今日推荐