我有一个目录比较程序(基于docs-https://docs.python.org/3/library/filecmp.html)中给出的例子,它没有找到一个额外的文件,我把它放在一个子目录中来测试它。该计划是:
import sys
from filecmp import dircmp
def print_diff_files(dcmp):
for name in dcmp.diff_files:
print("diff_file %s found in %s and %s" % (name, dcmp.left, dcmp.right))
for sub_dcmp in dcmp.subdirs.values():
print_diff_files(sub_dcmp)
dcmp = dircmp(sys.argv[1], sys.argv[2])
print_diff_files(dcmp)
print(dcmp.left_only)
print(dcmp.right_only)
右边的“仅限于”列表中应该包含一些内容,但它只是[]。为什么会这样?在
filecmp.dircmp
不递归比较文件。如果您希望dircmp.left_only
和{dircmp.diff_files
一样自己执行。在将您的
print(dcmp.left_only)
和print(dcmp.right_only)
移到递归函数print_diff_files
内:我对blhsing的程序做了一些小的修改,如图所示:
相关问题 更多 >
编程相关推荐