❶ 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的占用也会少很多。