python監控文件夾
Ⅰ 如何在Windows下使用python監控文件變動
有一個API,注冊後,文件發生變動,它會自動通知你。
另外還有一個辦法,似乎是以特定方式,打開文件,當有人修改這個文件時,你會獲得通知。
還有監控目錄的辦法。
最笨的辦法當然是定時輪詢。不需要什麼技巧,定時檢查文件和目錄的修改時間,如果時間發生變化就是變動了。
Ⅱ python 實時檢測文件夾的大小,如果超過設定值,自動清空文件夾,如何
實時檢測我覺得可能沒必要了,周期性檢測倒是不錯,比如每隔30秒檢查一次,除非你一秒鍾就幾十上百兆數據寫入,那就得實時檢測了。
實時監測的話,在while循環里不停的查看文件夾的變化
首寫關於文件夾的大小,據我所知道的python標准庫並沒有提供關於文件夾大小的api或套件,你需要一個一個文件的去遍歷獲取文件的大小累加求和,獲取文件大小可以使用os.stat(文件路徑)。不過最好的方式,我覺得是通過調用系統命令獲取文件夾的大小,這樣就不用寫遞歸方法,獲取你要清空目錄下的文件目錄結構,當然目錄結構簡單的話,遞歸方法都不用寫。不知道你的操作系統是什麼,linux的話可以用
-sh /data/applog/
在python2.7中可以使用commands.getoutput執行上面的命令並獲取到輸出結果
第二就是關於清空文件夾的,你必須保證沒有程序對你要清空的目錄進行訪問,你才能正常的清空,否則,對於在使用中的文件你會清空失敗。清空文件夾你可以使用shutil庫里的rmtree()方法,它不管你文件夾是否有文件或子文件夾,使用它就是一行代碼的事情,如果使用os模塊進行刪除的話你要從最底層文件夾開始刪除。最後你再重新新建這文件夾
上面只是思路,具體使用還得根據你的實際需要來的
如果你要進行周期性檢測的話,可以使用標准庫中的sched庫來開發
Ⅲ python監控區域網文件夾
直接改IP地址可能不行,建議在內網把該目錄發布成ftp或者http,通過這2種方式訪問,獲取文件修改時間吧。
Ⅳ python 監控一個文件夾
笨辦法是在循環中不斷讀取目錄以及目錄中文件的最後修改時間,如果有變更,則說說文件被修改。
這種辦法需要不斷的循環讀取文件信息,這對cpu佔用較高,同時也會產生一定的磁碟IO,短時間小范圍使用尚可,如果長時間運行在伺服器上,或者監控一個包含很多文件的目錄則不可取。
辦法之二是利用操作系統提供的功能來實現。
比如在Windows中,可以利用Windows API【ReadDirectoryChangesW】來實現。這可以免去大量的磁碟IO。因為文件修改的頻率一般不高,可以使用定計時器進行循環,對cup的佔用也會少很多。
Ⅳ 如何通過python實現實時監控文件
比如要監控nginx的$request_time和$upstream_response_time時間,分析出最耗時的請求,然後去改進代碼,這時就要對日誌進行實時分析了,發現時間長的語句就要報警出來,提醒開發人員要關注,當然這是其中一個應用場景,通過這種監控方式還可以應用到任何需要判斷或分析文件的地方!
Ⅵ 如何用python語言監控文件或目錄變化
import os, time
path_to_watch = "."before = dict ([(f, None) for f in os.listdir (path_to_watch)])while 1:
time.sleep (10)
after = dict ([(f, None) for f in os.listdir (path_to_watch)])
added = [f for f in after if not f in before]
removed = [f for f in before if not f in after] if added: print "Added: ", ", ".join (added) if removed: print "Removed: ", ", ".join (removed)
before = after
Ⅶ python ftplib監控文件修改時間
用python的ftplib,示例代碼如下,返回目錄內容的詳細信息,自己做下相應的處理就可以了
fromftplibimportFTP
ftp=FTP()
timeout=30
port=21
ftp.connect('192.168.85.1',port,timeout)#連接FTP伺服器
ftp.login('test','test')#登錄
printftp.getwelcome()#獲得歡迎信息
ftp.cwd('test')#設置FTP路徑
printftp.retrlines('LIST')#列出目錄內容
Ⅷ 如何使用python腳本實現對windows系統監控
示例:
#!/usr/bin/envpython
#encoding:utf-8
"""
MonitorLog.py
Usage:MonitorLog.py...
Monitorthelogfile
-flogfile
-hhelpinfo
pythonMonitorLog.py-fC:monitor.log
Createdbyzhouboon2011-08-29.
"""
importsys
importos
importgetopt
importsubprocess
importtime
importcodecs
importwinsound
ABSPATH=os.path.dirname(os.path.abspath(__file__))
MONITERCONF='moniter_keyword.txt'#utf8file
defmain():
try:
opts,args=getopt.getopt(sys.argv[1:],'hf:')
exceptgetopt.GetoptError,err:
printstr(err)
print__doc__
return1
path=''
fork,vinopts:
ifk=='-f':
path=v
elifk=='-h':
print__doc__
return0
ifnot(pathandos.path.exists(path)):
print'Invalidpath:%s'%path
print__doc__
return2
#命令行元組
cmd=('tail','-f',path)
print''.join(cmd)
output=subprocess.Popen(cmd,stdout=subprocess.PIPE)
keywordMap={}
#載入監控的關鍵字信息
withcodecs.open(os.path.join(ABSPATH,MONITERCONF),'r','utf8')asf:
lines=f.readlines()
forlineinlines:
line=line.strip()
ifnotline:
continue
keyword,wav=line.strip().split(':')
keywordMap[keyword]=wav
whileTrue:
line=output.stdout.readline()
#processcode,得到輸出信息後的處理代碼
ifnotline:
time.sleep(0.01)
continue
line=line.strip().decode('utf8')
printline
forkeywordinkeywordMap:
ifline.find(keyword)>-1:
winsound.PlaySound(keywordMap[keyword],
winsound.SND_NODEFAULT)
#time.sleep(0.01)
return0
if__name__=='__main__':
sys.exit(main())
Ⅸ pyqt5監控文件夾變化 返回新增的文件名
一般方法就是定時去查詢該目錄下的文件數量,得到文件夾中的文件總數,如果查詢出來的文件數量比原來多,那就有新增文件了。
擴展知識:
pyqt5是一種高性能,功能全面的編程語言python自當不能少了軟體開發的功能,所以為了實現GUI界面程序開發,python配備了一些第三方庫來實現這個功能,其中TkInter、WxPython、PySide、PyQt等都是比較優秀的GUI界面模塊。其中PyQt5是這其中比較優秀的一個模塊。
Ⅹ python的運行文件在哪個文件夾
python的運行文件所在位置:
找到python的安裝目錄,在安裝目錄下面,有一個python.exe文件,這個就是python的運行文件
右鍵單擊,選擇發送到桌面快捷方式,這個快捷方式就是python的桌面圖標了
示例如下:
更多Python知識,請關註:Python自學網!!