Python在读/写时损坏

Python在读/写时损坏,python,windows,Python,Windows,我试图使用Python(ftplib/paramiko)从FTP/SFTP服务器下载一些“.zip”文件,但我似乎无法解压缩我的文件,因为有些文件总是被破坏。起初我认为这是我下载的错误。然而,当我试图创建一个简单的复制函数时,它读取一个文件并写入另一个文件 打开(“testfile.zip”,“wb”)作为_文件: 从_文件打开(“working.zip”,“rb”): 尽管如此: 字节=从_文件读取(4096) 如果不是字节: 打破 到_文件。写入(字节) copy_hash=pv.getHa

我试图使用Python(ftplib/paramiko)从FTP/SFTP服务器下载一些“.zip”文件,但我似乎无法解压缩我的文件,因为有些文件总是被破坏。起初我认为这是我下载的错误。然而,当我试图创建一个简单的复制函数时,它读取一个文件并写入另一个文件

打开(“testfile.zip”,“wb”)作为_文件:
从_文件打开(“working.zip”,“rb”):
尽管如此:
字节=从_文件读取(4096)
如果不是字节:
打破
到_文件。写入(字节)
copy_hash=pv.getHashHexOfFile(“testfile.zip”、“SHA256”)
original_hash=pv.getHashHexOfFile(“working.zip”、“SHA256”)
打印(原始散列,“=”,复制散列)
在这里,我注意到每次调用脚本函数时,这两个文件的校验和都不一样,因此似乎有什么问题,并且“testfile.zip”仍然无法解压缩

在以前的一个项目中,我编写了一个小型校验和库(在几台正在工作的计算机上进行了测试),使用该库,我注意到当我读取字节时,我经常得到不同的校验和: 注意:在windows上工作

将packagevalidator作为pv导入
t=0
当t<20时:
original_hash=pv.getHashHexOfFile(“working.zip”、“SHA256”)
打印(原始散列)
t+=1
输出

376e3091cf14fd35fe0470c1fd52483e8321a0cc2301dcfa146e5b39c8e78616
22017d5839a8d07812fe6b7c522690bd1008ff0ba5cbe93ad77d55b331b1ac36
21492063f1c808a1a49693f42029cbe64101cb1478035087cf57670004a85bb1
0a6a1a25493c6f54dfc8d2e37c7560eb2e397179f99c061bb2f1d034d02db874
580f2e09924ee9efb2b9bf1a08f742eb5af76191693fc3cc067445600807e42e
c0458ba9c3c33149095836be41d7f3d9ec8fe9f395e1cb4e6665a360fd06b188
05045c2d1e0be86c43236a347fcaa8a18237ce8beec37cf67e776f970bb2c8a0
9f6d0f43b8ef424cf6b5d57a5a6cc8bf868fe44630953d8f99822a29eb1d1dfa
ddc20c05fc3fd44869f011ae60265cf5981edc41a1bfea40d0bc3328cc3d424c
742e7f5133bf8807ee3cc6e4f28e3bde80ad71483a39ac4f9e060bb18777d8b6
dd9dd75e2ecf8c3f0eb5548e100a9383d701e74ce286dba74ac0b72c2f66870e
f1526963564c34236cfd101b5fb3d80f6e0a3797648f80805dcd78fc67aa5cd2
1ce41e85341099dea5a428883e79c59f80b4b7be4d3e7b5e4d98b95059f7afe1
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
5dc49234cae174476891af523315864c76c2e2dc81a79556771f02c87a17979e
c03fe3f66daa78d5cbbc9aa8f511d2048dda0a5a3b8593161aa79ab4f1487904
a861a08f7fcd53d2f3a07819656de3257e0ce9083428929c84e65c1be0831283
7e16fb27f612aae22aaf9c23a32be3d2846a088f6a4b6dc293429f19ad9d50d9
86d3a2cc8ff669f8bc6c63c1c5caa326f5465dd607d8c59efd27ac9d946a6ed6
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
376e3091cf14fd35fe0470c1fd52483e8321a0cc2301dcfa146e5b39c8e78616
22017d5839a8d07812fe6b7c522690bd1008ff0ba5cbe93ad77d55b331b1ac36
21492063F1C808A1A49693F42029CBE641011CB1478035087CF57670004A85BB1
0a6a1a25493c6f54dfc8d2e37c7560eb2e397179f99c061bb2f1d034d02db874
580f2e09924ee9efb2b9bf1a08f742eb5af76191693fc3cc067445600807e42e
c0458ba9c3c33149095836be41d7f3d9ec8fe9f395e1cb4e6665a360fd06b188
05045c2d1e0be86c43236a347fcaa8a18237ce8beec37cf67e776f970bb2c8a0
9F6D0F43B8EF424CF6B5D57A5A6CC8BF868FE44630953D8F99822A29EB1DFA
ddc20c05fc3fd44869f011ae60265cf5981edc41a1bfea40d0bc3328cc3d424c
742e7f5133bf8807ee3cc6e4f28e3bde80ad71483a39ac4f9e060bb18777d8b6
dd9dd75e2ecf8c3f0eb5548e100a9383d701e74ce286dba74ac0b72c2f66870e
f1526963564c34236cfd101b5fb3d80f6e0a3797648f80805dcd78fc67aa5cd2
1ce41e85341099dea5a428883e79c59f80b4b7be4d3e7b5e4d98b95059f7afe1
02124835F3266375BCF9A63C7FC1C75EBE8ECDEEA2F8FA315D8AC3BBFEACEFC
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
e2f3ec7d83fac6460a9b36c46c7878f567567f4c4efb6d3f949e1d31b8404915
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
a4ecb166f8bc5b417224507d19fef467ea1bf5d571f5a6bb13f5dc28cd59d469
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
fe4d137937e100b632eb9236840ca003d3d532e40db5b1afe09fa17c145fa86f
abdbdd7e6e8beb22e8fac9f163c679b51622a67904edc8751c710ee037a33d27
a851d75f4292d2a1a61c1b3539dc72b4e53e8e4204e38d641214b6a88f55e0d9
399d2886beb5b2cefd1648e409551624c08c1b16260f4ae661c815eb5f47e8ff
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH
02124835f3266375bcf9a63c7fc1c75ebeb8ecdeea2f8fa315d8ac3bbfeacefc <-- Correct HASH