python3 flask 文件占用未释放问题

 更新时间:2023年11月07日 10:50:40   作者:太阳晒PP  
这篇文章主要介绍了python3 flask 文件占用未释放问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景

删除文件报错文件被进程占用

    starttime = datetime.datetime.now()
    files = os.listdir(os.getcwd())
    if 'scan.log' in files:
        os.remove(os.path.join(os.getcwd(), 'scan.log'))
    if 'scanResult.log' in files:
        os.remove(os.path.join(os.getcwd(), 'scanResult.log'))

原因

python logging模块打日志,句柄未释放导致,本地test.py调试不会出问题因为python执行完会退出

解决

在删除文件前,调logging.shutdown()

import logging
from logging.handlers import TimedRotatingFileHandler
formatter = logging.Formatter(
    fmt='[%(levelname)s] %(asctime)s  %(message)s',
    datefmt="%Y-%m-%d_%H:%M:%S"
)

def getLogger(name,logPath):
    logger = logging.getLogger(name)
    logger.setLevel(logging.INFO)
    if not logger.handlers:
        sh = logging.StreamHandler()
        sh.setLevel(logging.ERROR)
        fh = TimedRotatingFileHandler(logPath, when='midnight', backupCount=30, encoding='utf-8')
        fh.setFormatter(logging.INFO)
        sh.setFormatter(formatter)
        fh.setFormatter(formatter)
        logger.addHandler(sh)
        logger.addHandler(fh)

    return logger

def shutdown():
    logging.shutdown()

排错

怀疑自己写的with open没释放?按道理会自动释放,加了行f.close还是报错被占用

怀疑上传文件未及时释放,ftp.quit()、ftp.close()、还是不行

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python中pytest收集用例规则与运行指定用例详解

    python中pytest收集用例规则与运行指定用例详解

    这篇文章主要介绍了python中pytest收集用例规则与运行指定用例详解,天会讲解一下pytest是如何收集我们写好的用例?我们又有哪些方式来运行单个用例或者批量运行用例呢,需要的朋友可以参考下
    2019-06-06
  • Python类中方法种类与修饰符从基础到实战详解

    Python类中方法种类与修饰符从基础到实战详解

    在Python面向对象编程中,方法有不同的种类和修饰符,它们各自有着特定的用途和行为,本文将全面解析Python中的各种方法类型,并通过一个综合案例帮助你彻底掌握这些概念,需要的朋友可以参考下
    2025-07-07
  • 基于Python打造一个PDF全能处理工具

    基于Python打造一个PDF全能处理工具

    这篇文章主要为大家详细介绍了如何使用Python构建一个PDF处理工具箱,涵盖拆分,合并,加密,水印四大核心功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-07-07
  • Python机器学习之AdaBoost算法

    Python机器学习之AdaBoost算法

    今天带大家来学习Python机器学习,文中对AdaBoost算法介绍的很详细,有非常多的代码示例,对正在学习python的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • Pytorch模型中的parameter与buffer用法

    Pytorch模型中的parameter与buffer用法

    这篇文章主要介绍了Pytorch模型中的parameter与buffer用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • Python+wxPython开发一个文件属性比对工具

    Python+wxPython开发一个文件属性比对工具

    在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模块开发一个实用的文件属性比对工具吧
    2025-11-11
  • Python argparse中的action=store_true用法小结

    Python argparse中的action=store_true用法小结

    这篇文章主要介绍了Python argparse中的action=store_true用法小结,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-02-02
  • pytorch: Parameter 的数据结构实例

    pytorch: Parameter 的数据结构实例

    今天小编就为大家分享一篇pytorch: Parameter 的数据结构实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • django使用定时任务django_apscheduler的实现

    django使用定时任务django_apscheduler的实现

    定时任务无论是个人开发还是企业业务都是需要的,本文主要介绍了django使用定时任务django_apscheduler的实现,减少请求时需要用户等待的时间,感兴趣的可以了解一下
    2021-08-08
  • Python数据结构列表

    Python数据结构列表

    这篇文章主要介绍了Python数据结构列表,本文重点内容主要是对列表数据结构的使用,在Python中,序列是一组按顺序排列的值。Python 有 3 种内置的序列类型:字符串、 元组和列表,下面一起进入文章了解更详细内容吧,需要的小伙伴可以参考一下</P><P>
    2021-12-12

最新评论