比较不同目录中的两个文件的名称
问题描述:
所以我正在通过两个目录。对于找到的每个文件,我都打印他们的名字。我想要做的是做一个比较,但是我不能提前,因为我对if语句有麻烦。假设我在这两个目录中都有一个名为some
的txt文件。如果在文件名中找到some
,我找到了打印。这是单独工作。我的问题是and
运营商。这两个文件都被命名为"some.txt"
,但我什么也没得到。就像我说的,如果我摆脱了and
运营商,它就可以工作。比较不同目录中的两个文件的名称
def compare(directory1, directory2):
for file1, file2 in zip(os.listdir(directory1),(os.listdir(directory2))):
if "some" in file1 and "some" in file2:
print("found")
答
在这种情况下不要使用拉链。你这样做的方式,你只是比较目录列表中具有相同索引的file1和file2。
比较所有可能的配对,只要做到这一点:
def compare(directory1, directory2):
for file1 in os.listdir(directory1):
for file2 in os.listdir(directory2):
if "some" in file1 and "some" in file2:
print("found")
答
这是一个办法做到这一点,我相信:
def compare(directory1, directory2):
dir1 = {file for file in os.listdir(directory1)}
dir2 = {file for file in os.listdir(directory2)}
dir_common = dir1.union(dir2)
for file in dir_common:
if "some" in file:
print("found")
你可以添加文件的名称在两个目录? – GLaDOS
请勿使用“zip”。使用'zip',你只会比较'directory1'中的'j-th'文件和'directory2'中的'j-th'文件。 – gtlambert
may filecmp.cmpfiles()对你有用吗? – MaxU