python如何判断一个文件内容发生变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何判断一个文件内容发生变化相关的知识,希望对你有一定的参考价值。

有一个config文件,需要判断它的内容是否变化,config里是一个字典,值为复杂对象(还是字典),只有可能是值变化,键不会变。。。

参考技术A 建议利用md5

import os,sys,md5
f1 = open('f:/1.txt','r')
f2 = open('f:/1.txt','r')
print md5.new(f1.read()).digest() == md5.new(f2.read()).digest()
每次更新都存储一个老的config的副本.
参考技术B 怎么能判断他是否变化,你如果想去判断是否变,内存中怎么也得先存有变之前的版本,但按照你的意思,是不可能的。所以何必纠结于变不变,直接按照cnfig文件来进行对应的设置不行么 参考技术C 判断最后修改时间不能解决?追问

修改时间变化一定是因为内容变了吗?有没有可能是别的情况?

追答

修改时间一定会变的。。。

NodeJs之文件合并(某一文件的内容发生变化与之相关的内容重新合并)

首先,一个文件里面的内容是由多个文件共同组成的。例如一个文件夹包含有多文件(文件夹)

然后,当其中一个发生变化时所用与之有直接作用的文件(文件夹)都会重新组合。

/*注意:该例子需要在同级目录下完成及该脚本去监听另一个与之同目录下的文件,然后发生变化后,将所有内容重新生成到Index.js中*/

var fs=require(fs);
var fileder="./First/sourse";//需要监听的文件路径
fs.watch(fileder,function (ev,file) { //不需要判断是否有内容

    //1.只有有一个文件发生了变化,我们就需要对这个文件夹下的文件进行读取,然后合并
    fs.readdir(fileder,function (err,dataList) {
        var arr=[];

    dataList.forEach(function (f) {//回调函数中的f对应每一个文件名
        // console.log(dataList);
        // console.log(f);
    var info=fs.statSync(fileder+/+f);//fs.stat() 检查一个文件是否存在

    // console.log(info);
    if(info.mode==33206){
        arr.push(fileder+/+f);
    }
    });
            //console.log(arr)
        //2.读取数组中的文件并合并
        var content=‘‘;
        arr.forEach(function (f) {
         var c= fs.readFileSync(f)
            //console.log(c.toString());
            content+=c.toString()+\n;
        });
          //console.log(content)
  fs.writeFile(./First/js/Index.js,content)//将变化后的内容生成到指定位置
    })
});

 

以上是关于python如何判断一个文件内容发生变化的主要内容,如果未能解决你的问题,请参考以下文章

当AngularJS网站中的网站内容发生变化时,如何使index.html不缓存?

python 通过crc32得到加密文件内容

如何通过 youtube API 判断 youtube 视频的内​​容何时发生变化?

Python监控文件内容变化

Python监控文件内容变化

实时监测文件内容变化,Python