首页 > 解决方案 > Python - requests.get 后跟使用 HashLib 的文件比较

问题描述

美好的一天,
我遇到了一个非常令人困惑的情况。我正在使用request.get从 API 获取变量数据。

URL = "https://..../..../.....X={}&date={}".format(code,given_date)
header = {'User-Agent': xxx.xx.xx........}
response = requests.get(URL, headers=header)
json_data=json.loads(response.text)

接下来,我将上面的数据附加到文本文件中。此代码的主要目的是检查来自 API 的数据更改并在检测到更改时发送警报(推送通知),因此代码设置为每 15 分钟运行一次(循环),但为了测试 i 'm 使用 30 秒循环。

为了比较新旧文件,我hashlib.sha1()在比较它们之前使用了 2 个文件if hash_latest != hash_new:

但是,我可以看到多个哈希,而不是只有 2 个 SHA1 哈希,我认为这是在新文件完全写入之前生成哈希的结果。从视觉上看,文件内容完全匹配。

我使用timeit并且文件生成总共需要 0.4 秒才能完成,所以我time.sleep(1)在 SHA1 哈希开始之前插入了一个,但我再次接收了多个哈希。我什至尝试过filecmp.cmp(f1, f2, shallow=False):

我仍然有同样的结果。我在另一个交流中读到了一个叫做 p.wait() 的东西。有人可以建议吗?

标签: python-3.xcompare

解决方案


推荐阅读