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執(zhí)行完會退出
解決
在刪除文件前,調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()、還是不行
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Selenium webdriver添加cookie實現(xiàn)過程詳解
這篇文章主要介紹了Selenium webdriver添加cookie實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-08-08
Python中消息訂閱應用開發(fā)的最優(yōu)5個方案及代碼實現(xiàn)
消息訂閱是現(xiàn)代分布式系統(tǒng)中實現(xiàn)異步通信和解耦的核心技術之一,本文將為大家詳細介紹一下5種最優(yōu)的消息訂閱方案,感興趣的小伙伴可以了解下2025-03-03
python實現(xiàn)從網(wǎng)絡下載文件并獲得文件大小及類型的方法
這篇文章主要介紹了python實現(xiàn)從網(wǎng)絡下載文件并獲得文件大小及類型的方法,涉及Python操作網(wǎng)絡文件的相關技巧,需要的朋友可以參考下2015-04-04
使用python 寫一個靜態(tài)服務(實戰(zhàn))
今天小編就為大家分享一篇使用python 寫一個靜態(tài)服務(實戰(zhàn)),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
Python利用卡方Chi特征檢驗實現(xiàn)提取關鍵文本特征
卡方檢驗最基本的思想就是通過觀察實際值與理論值的偏差來確定理論的正確與否。本文將利用卡方Chi特征檢驗實現(xiàn)提取關鍵文本特征功能,感興趣的可以了解一下2022-12-12

