• Python3操作文件系列(一):判断文件|目录是否存在三种方式




    Python3操作文件系列(一):判断文件|目录是否存在三种方式

    Python3操作文件系列(二):文件数据读写|二进制数据读写

    Python3数据文件读取与写入

     




    一: 文件操作认知:

    提升认知:
       Python判断文件是否存在的三种方法
         1.使用os模块
         2.判断文件是否可做读写操作
         3.使用Try语句
         4.使用pathlib模块
         通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。
         介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块

    二:三种判断方式


    # -*- coding:utf-8 -*-
    import os
    import pathlib
    
    """
       提升认知:
          Python判断文件是否存在的三种方法
            1.使用os模块
            2.判断文件是否可做读写操作
            3.使用Try语句
            4.使用pathlib模块
            通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。
            介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块
    """
    
    print("""
       Python判断文件是否存在的三种方法
            1.使用os模块
            2.判断文件是否可做读写操作
            3.使用Try语句
            4.使用pathlib模块
            通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。
            介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块
    """)
    
    print()
    print("---------------------------------判断文件或者目录是否存在的方法一-------------------------------")
    print("""
       1.使用os模块
        os模块中的os.path.exists()方法用于检验文件是否存在。
        判断文件是否存在
        判断文件夹是否存在  判断文件和文件夹是一样。
    """)
    print("判断文件和文件夹是一样:os.path.exists() 该方法 ")
    print("if语句写同一行,并返回值,如果if成立,则赋值True给result;否则就赋值False给result")
    result = True if os.path.exists("../dataanalysis/file/data.txt") else False
    print("result: ", result)
    print(result is True)
    
    print('检查文件: os.path.isfile("data.txt") ')
    print("data.txt是否是文件: %s" % (os.path.isfile("../dataanalysis/file/data.txt")))
    
    print()
    print("判断文件是否可做读写操作")
    print("""
    使用os.access()方法判断文件是否可进行读写操作。
    语法:
        os.access(path, mode)
        path为文件路径,mode为操作模式,有这么几种:
            os.F_OK: 检查文件是否存在;
            os.R_OK: 检查文件是否可读;
            os.W_OK: 检查文件是否可以写入;
            os.X_OK: 检查文件是否可以执行
    """)
    # 路径使用相对路径
    if os.access("../dataanalysis/file/data.txt", os.F_OK):
        print("Given file path is exist.")
    
    if os.access("../dataanalysis/file/data.txt", os.R_OK):
        print("File is accessible to read")
    
    if os.access("../dataanalysis/file/data.txt", os.W_OK):
        print("File is accessible to write")
    
    if os.access("../dataanalysis/file/data.txt", os.X_OK):
        print("File is accessible to execute")
    
    print()
    print("---------------------------------判断文件或者目录是否存在的方法二-------------------------------")
    print("""
    使用Try语句
        可以在程序中直接使用open()方法来检查文件是否存在和可读写。
        语法:
        open()
            如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。
            程序无法访问文件,可能有很多原因:
            如果你open的文件不存在,将抛出一个FileNotFoundError的异常;
            文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。
            所以可以使用下面的代码来判断文件是否存在:
    
    """)
    try:
        with open("../dataanalysis/file/data.txt") as f:
            print("文件的编码格式为: ", f.encoding)
    except FileNotFoundError:
        print("File is not found.")
    except PermissionError:
        print("You don't have permission to access this file.")
    
    '''
    其实没有必要去这么细致的处理每个异常,上面的这两个异常都是IOError的子类。所以可以将程序简化一下:
    '''
    try:
        f = open("../dataanalysis/file/data.txt")
        f.close()
    except IOError:
        print("File is not accessible.")
    
    print()
    print("---------------------------------判断文件或者目录是否存在的方法三-------------------------------")
    
    print()
    print("""
     使用pathlib模块
            pathlib模块在Python3版本中是内建模块,但是在Python2中是需要单独安装三方模块。
    
            使用pathlib需要先使用文件路径来创建path对象。此路径可以是文件名或目录路径。
    
            检查路径是否存在
            检查路径是否是文件
    """)
    
    path = pathlib.Path("../dataanalysis/file/")
    print("../dataanalysis/file/路径是否存在:", path.exists())
    
    path = pathlib.Path("../dataanalysis/file/data.txt")
    print('data.txt文件是否存在: ', path.is_file())
    

    三: 三种判断方式运行效果


    D:\program_file_worker\anaconda\python.exe D:\program_file_worker\python_source_work\SSO\grammar\file\FileJudgmentIsNotExist.py 

       Python判断文件是否存在的三种方法
            1.使用os模块
            2.判断文件是否可做读写操作
            3.使用Try语句
            4.使用pathlib模块
            通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。
            介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块


    ---------------------------------判断文件或者目录是否存在的方法一-------------------------------

       1.使用os模块
        os模块中的os.path.exists()方法用于检验文件是否存在。
        判断文件是否存在
        判断文件夹是否存在  判断文件和文件夹是一样。

    判断文件和文件夹是一样:os.path.exists() 该方法 
    if语句写同一行,并返回值,如果if成立,则赋值True给result;否则就赋值False给result
    result:  True
    True
    检查文件: os.path.isfile("data.txt") 
    data.txt是否是文件: True

    判断文件是否可做读写操作

    使用os.access()方法判断文件是否可进行读写操作。
    语法:
        os.access(path, mode)
        path为文件路径,mode为操作模式,有这么几种:
            os.F_OK: 检查文件是否存在;
            os.R_OK: 检查文件是否可读;
            os.W_OK: 检查文件是否可以写入;
            os.X_OK: 检查文件是否可以执行

    Given file path is exist.
    File is accessible to read
    File is accessible to write
    File is accessible to execute

    ---------------------------------判断文件或者目录是否存在的方法二-------------------------------

    使用Try语句
        可以在程序中直接使用open()方法来检查文件是否存在和可读写。
        语法:
        open()
            如果你open的文件不存在,程序会抛出错误,使用try语句来捕获这个错误。
            程序无法访问文件,可能有很多原因:
            如果你open的文件不存在,将抛出一个FileNotFoundError的异常;
            文件存在,但是没有权限访问,会抛出一个PersmissionError的异常。
            所以可以使用下面的代码来判断文件是否存在:


    文件的编码格式为:  cp65001

    ---------------------------------判断文件或者目录是否存在的方法三-------------------------------


     使用pathlib模块
            pathlib模块在Python3版本中是内建模块,但是在Python2中是需要单独安装三方模块。

            使用pathlib需要先使用文件路径来创建path对象。此路径可以是文件名或目录路径。

            检查路径是否存在
            检查路径是否是文件

    ../dataanalysis/file/路径是否存在: True
    data.txt文件是否存在:  True

    Process finished with exit code 0
     

  • 相关阅读:
    项目成本管理
    C++——stack和queue的使用和OJ练习题
    Hadoop笔记
    @Autowired @Resource @Qualifier的区别
    C#winform软件实现一次编译,跨平台windows和linux兼容运行,兼容Visual Studio原生界面Form表单开发
    深度学习DeepLearning多元线性回归 学习笔记
    5.XSS-反射型(post)利用:获取cookie
    机器学习-01-课程目标与职位分析
    开播客户端
    基于SNAT+DNAT发布内网K8S及Jenkins+gitlab+Harbor模拟CI/CD的综合项目
  • 原文地址:https://blog.csdn.net/u014635374/article/details/133653389