所以我有一个 python 脚本,它使用 pyserial 库将文件通过串行发送到另一台计算机。我写了一些脚本来计算文件在通过串行发送之前和之后的 md5 校验和,我遇到了一些问题。
示例:我发送了一个名为 third.txt 的简单文件,其中包含从 1 到 10 的数字列表。简单文件,没有什么花哨或大的。传输前的文件校验和与传输到另一台计算机后的文件校验和完全不同,即使文件明显相同。
我通过简单地通过 USB 移动文件并以这种方式进行校验和计算来检查我的代码是否有问题。这次奏效了。
任何想法为什么会发生这种情况以及我可能如何解决它?
这是我发送前的校验和代码。这不是确切的代码,但基本上是我所做的。
<<Code that waits for command from client>>
with open(file_loc) as file_to_read:
data = file_to_read.read()
md5a = hashlib.md5(data).hexdigest()
ser.write('\n' + md5a + '\n')
这是我发送后的校验和代码。
with open(file_loc) as file_to_read:
data = file_to_read.read()
md5b = hashlib.md5(data).hexdigest()
print('Sending Checksum Command')
ser.write("\n<<SENDCHECKSUM>>\n")
md5a = ser.readline()
print(md5a)
print(md5b)
if md5a == md5b:
print("Correct File Transmission")
else:
print("The checksum indicated incorrect file transmission, please check.")
ser.flush()