如何将文件路径对应的列表中的校验和与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

如何将文件路径对应的列表中的校验和与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.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)