❶ Python 快速檢測配置文件是否變更
分享背景:
當項目非常多時隨之而來的配置文件也會變得非常多,而且越發的復雜,有時候上線後才知道線上環境的配置文件不對,那麼我們如何提前來檢測到配置文件有改動了,本文將給你提供一個可以檢測的手段。代碼如下所示
1.導入包並指定目錄
2.初始化配置文件的md5值並入庫
3.檢測新配置文件的md5值是否變化
4.文件進行md5加密處理
5.遍歷指定目錄下文件
6.代碼運行入口
總結:
我們首先要確定我們要檢測的配置文件,然後將它的當前的md5值進行初始化到資料庫,當下次發布前我們可以針對性的進行一次檢測,發現有變更就會提示出來,這樣就可以做到提前知曉變更的配置文件,再人工介入進行重點檢查。
❷ python怎麼判斷一個文件夾下的文件是否更新
可以比較Modified Time,
os.path.getmtime(file)
❸ python中寫一段代碼檢測本地的一個文檔是否正在被修改
樓上的說法覺得不太可行,當用w模式的話,會把裡面的內容清空的。
建議對該文件連續取兩次md5值,對比兩次的值,如果不一致,肯定有修改,如果沒有則代表沒有被修改。
只是建議,可以嘗試!
❹ python 看是否存在文件夾 Python 判斷文件/目錄是否存在
1、Python 操作文件時,我們一般要先判斷指定的文件或目錄是否存在,不然容易產生異常。
2、例如我們可以使用 os 模塊的 os.path.exists() 方法來檢測文件是否存在:
import os.path
os.path.isfile(fname)
3、如果你要確定他是文件還是目錄,從 Python 3.4 開始可以使用 pathlib 模塊提供的面向對象的方法 (Python 2.7 為 pathlib2 模塊):
from pathlib import Path
my_file = Path(/path/to/file)
if my_file.is_file():
# 指定的文件存在
檢測是否為一個目錄:
if my_file.is_dir():
# 指定的目錄存在
4、如果要檢測路徑是一個文件或目錄可以使用 exists() 方法:
if my_file.exists():
# 指定的文件或目錄存在
在 try 語句塊中你可以使用 resolve() 方法來判斷:
try:
my_abs_path = my_file.resolve()
except FileNotFoundError:
# 不存在
else:
# 存在
❺ python 實時檢測文件夾的大小,如果超過設定值,自動清空文件夾,如何
實時檢測我覺得可能沒必要了,周期性檢測倒是不錯,比如每隔30秒檢查一次,除非你一秒鍾就幾十上百兆數據寫入,那就得實時檢測了。
實時監測的話,在while循環里不停的查看文件夾的變化
首寫關於文件夾的大小,據我所知道的python標准庫並沒有提供關於文件夾大小的api或套件,你需要一個一個文件的去遍歷獲取文件的大小累加求和,獲取文件大小可以使用os.stat(文件路徑)。不過最好的方式,我覺得是通過調用系統命令獲取文件夾的大小,這樣就不用寫遞歸方法,獲取你要清空目錄下的文件目錄結構,當然目錄結構簡單的話,遞歸方法都不用寫。不知道你的操作系統是什麼,linux的話可以用
-sh /data/applog/
在python2.7中可以使用commands.getoutput執行上面的命令並獲取到輸出結果
第二就是關於清空文件夾的,你必須保證沒有程序對你要清空的目錄進行訪問,你才能正常的清空,否則,對於在使用中的文件你會清空失敗。清空文件夾你可以使用shutil庫里的rmtree()方法,它不管你文件夾是否有文件或子文件夾,使用它就是一行代碼的事情,如果使用os模塊進行刪除的話你要從最底層文件夾開始刪除。最後你再重新新建這文件夾
上面只是思路,具體使用還得根據你的實際需要來的
如果你要進行周期性檢測的話,可以使用標准庫中的sched庫來開發
❻ python,如何查找一個文件夾里的最新產生的文件並且得到最新文件生成的時間
# -*- coding:UTF-8 -*-
import os,os.path,datetime
base_dir="c:\Windows\"
l=os.listdir(base_dir)
l.sort(key=lambda fn: os.path.getmtime(base_dir+fn) if not os.path.isdir(base_dir+fn) else 0)
d=datetime.datetime.fromtimestamp(os.path.getmtime(base_dir+l[-1]))
print('最後改動的文件是'+l[-1]+",時間:"+d.strftime("%Y年%m月%d日 %H時%M分%S秒"))
>>>
最後改動的文件是WindowsUpdate.log,生成時間:2013年04月10日 12時18分09秒
這個算較簡的方法。注意第5、6行在同一行上,網路自動斷了。
python3.2代碼
❼ python 監控一個文件夾
笨辦法是在循環中不斷讀取目錄以及目錄中文件的最後修改時間,如果有變更,則說說文件被修改。
這種辦法需要不斷的循環讀取文件信息,這對cpu佔用較高,同時也會產生一定的磁碟IO,短時間小范圍使用尚可,如果長時間運行在伺服器上,或者監控一個包含很多文件的目錄則不可取。
辦法之二是利用操作系統提供的功能來實現。
比如在Windows中,可以利用Windows API【ReadDirectoryChangesW】來實現。這可以免去大量的磁碟IO。因為文件修改的頻率一般不高,可以使用定計時器進行循環,對cup的佔用也會少很多。