python 中判断文件、目录是否存在的方法

一、实现上传文件功能

flask实现上传文件,在上一篇分享了flask实现文件上传的功能,若是文件存储的目录不存在会有个异常信息:
在这里插入图片描述
所以,在处理上传文件功能时,一定要先判断目录是否存在,不存在就创建目录,然后再调用save()函数保存文件到服务器

二、判断目录是否存在的办法

2.1、使用os模块
2.1.1、判断目录是否存在

参考flask实现上传文件这里的代码,使用os.path.exists(path) 判断目录是否存在
在这里插入图片描述
同样地,也能判断文件是否存在:

import os
os.path.exists('/static/uploads/11.png')

此外,还有os.path.isfile()方法用来判断是否是文件,os.path.isdir()判断是否是目录登方法可使用。着重说一下os.makedirs()方法。

2.1.2、os.makedirs():递归创建目录

存储的文件夹是个多级的,比如我要存到static/uploads/resource目录下,但是我的项目目前只有一个static目录,那么就需要调用该方法,创建多层目录

2.2、使用pathlib模块
2.2.1、path.exist()判断目录是否存在

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

import pathlib

path = pathlib.Path("path/file")
path.exist()    
2.2.1、path.mkdir():创建目录
static_upload_path: Path = current_app.config['UPLOADFILE_PATH']

if not static_upload_path.exists():
     static_upload_path.mkdir(parents=True)
2.3、使用Try语句

可以在程序中直接使用open()方法来检查文件是否存在和可读写。如下:

from flask import Flask
import os
app = Flask(__name__)
@app.route('/')
def file():
    # if not os.path.exists('/static/uploads/file'):
    #     return 'ewr'
    # os.path.isfile()
    try:
        f = open('/static/uploads/file')
        f.close()
    except FileNotFoundError:
        return  "File is not found"
        
if __name__ == '__main__':
    app.run()

三、写在最后

宣传一波:大家若是有人想北京租房可以联系我,主要是物资学院、通州北关、北苑、草房的房子。(注:我不是中介哟,我也不打算转行做中介,是我靠谱的朋友在做)

在这里插入图片描述

相关推荐

  1. PHP 判断文件是否存在

    2024-03-27 23:34:03       32 阅读
  2. android 判断文件是否存在

    2024-03-27 23:34:03       29 阅读
  3. c++判断路径是否存在判断文件夹是否存在

    2024-03-27 23:34:03       21 阅读
  4. js 判断值 对象 是否存在 包含 各种方式

    2024-03-27 23:34:03       60 阅读
  5. C/C++ 检测文件是否存在方法

    2024-03-27 23:34:03       27 阅读
  6. Python 判断某一组词是否有词在一段话存在

    2024-03-27 23:34:03       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-27 23:34:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-27 23:34:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-27 23:34:03       82 阅读
  4. Python语言-面向对象

    2024-03-27 23:34:03       91 阅读

热门阅读

  1. maya 导入导出anim脚本

    2024-03-27 23:34:03       42 阅读
  2. Redis常用数据结构的用法和使用场景

    2024-03-27 23:34:03       41 阅读
  3. 求和...

    2024-03-27 23:34:03       47 阅读
  4. 控制传输和中断传输能否同时使用呢

    2024-03-27 23:34:03       40 阅读
  5. 31-1 文件包含漏洞 - 文件包含

    2024-03-27 23:34:03       39 阅读
  6. 华为机试题-密码输入检测

    2024-03-27 23:34:03       43 阅读
  7. Vue.js 目录结构

    2024-03-27 23:34:03       42 阅读
  8. 设置mysql 数据库和表 的编码方式UTF-8

    2024-03-27 23:34:03       36 阅读
  9. 蓝桥杯刷题_day4_动态规划

    2024-03-27 23:34:03       38 阅读
  10. 如何用OBD创建OceanBase集群

    2024-03-27 23:34:03       31 阅读