目录
  • 前言
  • 一.检查文件夹/文件是否存在
    • 1. os.path.exists()
    • 2. os.path.isfile()和os.path.isdir()
    • 3. os.access()
    • 4. 异常判断
    • 5. lambda匿名函数(扩展)
  • 总结

    前言

    判断文件是否存在在实际应用中用的非常多,下面我们来归纳一下检查文件、文件夹是否存在的各种操作

    一.检查文件夹/文件是否存在

    1. os.path.exists()

    文件夹,文件均可,文件无后缀时会和文件夹混淆

    # 包括文件和文件夹,导入os.path
    import os.path
    
    ret_file = r'C:\Users\Administrator\Desktop\1.xlsx'
    # 1  os.path加函数方法
    def file_exists(ret_file):
        # 分不清是文件和文件夹
        res = os.path.exists(ret_file)
        return res
    result = file_exists(ret_file)
    print(result)

    2. os.path.isfile()和os.path.isdir()

    需要单独判断

    import os.path
    
    ret_file = r'C:\Users\Administrator\Desktop\1.xlsx'
    #  分开做判断
    def file_exists(ret_file):
        # 判断文件
        res1 = os.path.isfile(ret_file)
        # 判断文件夹
        res2 = os.path.isdir(ret_file)
        return (res1,res2)
    result = file_exists(ret_file)
    print(result)
    

    3. os.access()

    文件夹,文件均可,文件无后缀时会和文件夹混淆

    import os
    ret_file = r'C:\Users\Administrator\Desktop\1.xlsx'
    def file_exists(ret_file):
        # # os.F_OK文件是否存在
        res = os.access(ret_file, os.F_OK)
        # # os.R_OK文件是否可读
        # res = os.access(ret_file, os.R_OK)
        # # os.W_OK文件是否可写
        # res = os.access(ret_file, os.W_OK)
        # os.X_OK文件是否可执行
        # res = os.access(ret_file, os.X_OK)
    
        return res
    

    4. 异常判断

    只能判断文件

    #  直接读取文件,根据是否报错来判断文件是否存在(不能读取文件夹)
    def file_exists(ret_file):
        try:
            # f = open(ret_file)
            # f.close()
            with open(ret_file) as f:
                pass
        except IOError:
            return False
        else:
            return True
    

    5. lambda匿名函数(扩展)

    import os.path
    import os
    #lambda 方法,这里只写一种os.path.exists()方式实现
    file_exists = lambda file: os.path.exists(file)
    

    总结

    判断文件不存在后,按照惯例,下一步应该是新建文件、文件夹,然后再进行对文件、文件夹的操作

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。