如何在Python中比较列表中对应于文件路径的校验和与操作系统中的文件路径?
如何在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>
我需要比较在
1 个回答
0
当然可以!请看下面的内容:
在编程中,有时候我们需要让程序根据某些条件来做不同的事情。这就像我们在生活中做决定一样,比如今天是晴天还是雨天,我们会选择穿不同的衣服。
在代码里,我们可以使用“条件语句”来实现这个功能。条件语句就像一个开关,只有在特定的条件满足时,它才会执行某些代码。如果条件不满足,程序就会跳过这些代码,继续执行其他部分。
举个例子,如果你想检查一个数字是否大于10,你可以写一个条件语句来判断。如果这个数字大于10,程序就会打印“这个数字很大”;如果小于或等于10,程序就会打印“这个数字不大”。这样,程序就能根据不同的情况做出不同的反应。
希望这个解释能帮助你更好地理解条件语句的概念!
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)