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 argparse中的action=store_true用法小结
这篇文章主要介绍了Python argparse中的action=store_true用法小结,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-02-02
django使用定时任务django_apscheduler的实现
定时任务无论是个人开发还是企业业务都是需要的,本文主要介绍了django使用定时任务django_apscheduler的实现,减少请求时需要用户等待的时间,感兴趣的可以了解一下2021-08-08


最新评论