如何将文件路径对应的列表中的校验和与Python操作系统中的文件路径进行比较?
如何将文件路径对应的列表中的校验和与Python操作系统中的文件路径进行比较如何将文件路径对应的列表中的校验和与Python操作系统中的文件路径进行比较?,python,compare,sha1,checksum,Python,Compare,Sha1,Checksum,如何将文件路径对应的列表中的校验和与Python操作系统中的文件路径进行比较 import os,sys,libxml2 files=[] sha1s=[] doc = libxml2.parseFile('files.xml') for path in doc.xpathEval('//File/Path'): files.append(path.content) for sha1 in doc.xpathEval('//File/Hash'): sha1s.append(sha1
import os,sys,libxml2
files=[]
sha1s=[]
doc = libxml2.parseFile('files.xml')
for path in doc.xpathEval('//File/Path'):
files.append(path.content)
for sha1 in doc.xpathEval('//File/Hash'):
sha1s.append(sha1.content)
for entry in zip(files,sha1s):
print entry
files.xml包含
<Files>
<File>
<Path>usr/share/doc/dialog/samples/form1</Path>
<Type>doc</Type>
<Size>1222</Size>
<Uid>0</Uid>
<Gid>0</Gid>
<Mode>0755</Mode>
<Hash>49744d73e8667d0e353923c0241891d46ebb9032</Hash>
</File>
<File>
<Path>usr/share/doc/dialog/samples/form3</Path>
<Type>doc</Type>
<Size>1294</Size>
<Uid>0</Uid>
<Gid>0</Gid>
<Mode>0755</Mode>
<Hash>f30277f73e468232c59a526baf3a5ce49519b959</Hash>
</File>
</Files>
我需要比较标签之间的sha1校验和,该校验和对应于标签之间指定的文件,并且在基本操作系统中具有相同的文件路径。您对哪个位有问题?只是为磁盘上的文件生成SHA1?我可以用下面的代码生成sha1sum,我需要比较操作系统中文件的sha1sum和xml中的sha1sum。
import hashlib
import libxml2
doc = libxml2.parseFile('files.xml')
filePaths = ["/" + path.content for path in doc.xpathEval('//File/Path')]
xmlDigests = [hash.content for hash in doc.xpathEval('//File/Hash')]
for filePath, xmlDigest in zip(filePaths, xmlDigests):
with open(filePath) as inFile:
digester = hashlib.sha1()
digester.update(inFile.read())
fileDigest = digester.hexdigest()
if xmlDigest != fileDigest:
print "Mismatch for %s (XML: %s, FILESYSTEM: %s)" % (filePath,
xmlDigest, fileDigest)