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自学网!!