我正在编写一个快速的Python脚本来将文件从一个目录迁移到另一个目录。除了我要比较文件名和校验和的部分之外,一切都很顺利。我将文件存储在两个位置,即/root/src/file1和/root/dst/file1。在
所以当我运行文件名比较时,它无法匹配文件,因为它包含了整个文件路径。md5Srt是存储文件和校验和的dict。在
有没有一种方法可以在不使用整个文件路径的情况下比较文件名?在
for key in md5Srt.keys():
if key in md5Dst:
print "keys match " + key
print '\ncomparing the values of files\n'
if md5Srt[key] == md5Dst[key]:
print md5Srt[key]
print md5Dst[key]
print "files match\n"
print "checking the next pair"
else:
print "values of files don't match"
如果目录中只有一堆文件,则可以使用
os.path.basename
:如果要处理子目录,则需要知道基本src和dst目录,然后从每个路径的开头删除它们:
^{pr2}$如果您将其与您的函数结合起来,您将得到:
我认为您应该重新考虑尝试比较文件,方法是在}中的文件具有相同的md5sum。如果一个文件被重命名,或者有两个文件具有相同的哈希值,则可能会得到不完全相同的目录。更好的方法是先比较文件名,然后检查md5sums,如果}中都有一个文件。在
dst
中找到一个md5sum与{src
和{以下是可能的情况:
相关问题 更多 >
编程相关推荐