我希望能够计算文件的CRC,以便能够检查文件在将来的任何时间点是否发生了变化(例如第1天:filename.txt = A,第2天filename.txt = B - >文件已更改。)
如果可能的话(这就是我被困住的地方)我希望能够在不考虑文件名的情况下计算文件的CRC,以便能够识别文件名更改(例如第1天:文件名.txt具有CRC值X,第2天:newFileName.txt具有CRC值X - >相同文件,新文件名。)
我考虑了一种解决方法,即在检查CRC之前将文件名更改为标准值,但我想知道是否有更简单的方法来执行此操作。
答案 0 :(得分:1)
我不打算为你编写代码。 不过,你能做什么:
dict1
dict2
腌制它们,然后接下来检查比较两个版本的dict1的键和值:如果值差异,文件内容已经改变 dict2也是一样:如果值的差异,文件名已经改变,相同的内容。
你赢了但无法追踪,但文件名+文件内容会发生变化。您无法查看它是删除+新文件还是重命名+更改内容。这是限制。
编辑:我在说不写代码。我已经编写了一些示例代码来计算当前模块的MD5校验和(仅用于演示目的)。
import hashlib
with open(__file__,"rb") as f: # __file__ is full path to current .py file
contents=f.read()
m = hashlib.md5(contents)
print(m.hexdigest())
我得到ebb6e4753cfd7e23dae884a784bc1587
但结果可能会有所不同,具体取决于行终止,空白行数...
我建议您自己尝试,然后将python文件重命名/复制到另一个文件以证明自己不会改变。然后在它会改变的地方添加评论...祝你的项目好运。
编辑2:事后补充:您可能会阅读有关Git配置系统的信息。它使用CRC / MD5系统来检查文件是否已更改。我对此并不了解,但它可以在没有你编码的情况下为你的目的服务。