noo*_*win 4 python ftp compare file function
我在创建比较两个 zip 文件的函数时遇到问题(如果它们相同,不仅按名称)。这是我的代码示例:
def validate_zip_files(self):
host = '192.168.0.1'
port = 2323
username = '123'
password = '123'
ftp = FTP()
ftp.connect(host, port)
ftp.login(username,password)
ftp.cwd('test')
print ftp.pwd()
ftp.retrbinary('RETR test', open('test.zip', 'wb').write)
file1=open('test.zip', 'wb')
file2=open('/home/user/file/text.zip', 'wb')
return filecmp.cmp(file1, file2, shallow=True)
Run Code Online (Sandbox Code Playgroud)
问题之一是第二个 zip 位于不同的位置('/home/user/file/text.zip'),我正在我的 python 脚本所在的目录中下载 zip 文件。我不是 100% 确定 filecmp.cmp 可以与 .zip 文件一起使用。
任何想法都会很棒:) 谢谢。
我不会直接比较文件,而是继续比较文件的散列值。这消除了 的依赖性filecmp
,这可能 - 正如您所说 - 不适用于压缩文件。
import hashlib
def compare_files(a,b):
fileA = hashlib.sha256(open(a, 'rb').read()).digest()
fileB = hashlib.sha256(open(b, 'rb').read()).digest()
if fileA == fileB:
return True
else:
return False
Run Code Online (Sandbox Code Playgroud)