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检测QQ在线状态的方法

    Python检测QQ在线状态的方法

    这篇文章主要介绍了Python检测QQ在线状态的方法,涉及Python通过第三方平台检测QQ在线状态的技巧,非常简单实用,需要的朋友可以参考下
    2015-05-05
  • Django路由Path方法的实现

    Django路由Path方法的实现

    本文主要介绍了Django路由Path方法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python技巧之四种多线程应用分享

    Python技巧之四种多线程应用分享

    这篇文章主要介绍了Python中多线程的所有方式,包括使用threading模块、使用concurrent.futures模块、使用multiprocessing模块以及使用asyncio模块,希望对大家有所帮助
    2023-05-05
  • 解读sqlalchemy的常用数据类型有哪些

    解读sqlalchemy的常用数据类型有哪些

    这篇文章主要介绍了解读sqlalchemy的常用数据类型有哪些,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Python通过poll实现异步IO的方法

    Python通过poll实现异步IO的方法

    这篇文章主要介绍了Python通过poll实现异步IO的方法,实例分析了poll方法实现异步IO的相关技巧,需要的朋友可以参考下
    2015-06-06
  • Python实现爬取网页中动态加载的数据

    Python实现爬取网页中动态加载的数据

    这篇文章主要介绍了Python实现爬取网页中动态加载的数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • 基于python实现文件加密功能

    基于python实现文件加密功能

    这篇文章主要介绍了基于python实现文件加密功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • python中可以发生异常自动重试库retrying

    python中可以发生异常自动重试库retrying

    这篇文章主要介绍了python中可以发生异常自动重试库retrying,retrying是一个极简的使用Python编写的库,主题更多相关内容需要的朋友可以参考一下
    2022-06-06
  • 基础语音识别-食物语音识别baseline(CNN)

    基础语音识别-食物语音识别baseline(CNN)

    这篇文章主要介绍了一个基础语音识别题目-食物语音识别baseline(CNN),代码详细吗,对于想要学习语音识别的朋友可以参考下
    2021-04-04
  • Python构建XML树结构的方法示例

    Python构建XML树结构的方法示例

    这篇文章主要介绍了Python构建XML树结构的方法,结合实例形式分析了Python创建与打印xml数结构的实现步骤与相关操作技巧,需要的朋友可以参考下
    2017-06-06

最新评论