我在linux中有两个目录,其中有两个文件。我需要比较这两个目录并打印出更改的文件。
folder1:
file1.txt file2.txt
folder2:
file1.txt file2.txt
我需要比较一下
folder1
具有
folder2
并打印出这两个目录中不相同的文件名。我想先用
ls
命令获取文件列表并将其放入
list
然后使用python的
filecmp
,如下所示:
import os
import filecmp
folder1_path = "/home/user/folder1/"
folder2_path = "/home/user/folder2/"
def ls(path):
all = []
walked = os.walk(path)
for base, sub_f, files in walked:
for sub in sub_f:
entry = os.path.join(base,sub)
entry = entry[len(path):].strip("\\")
all.append(entry)
for file in files:
entry = os.path.join(base,file)
entry = entry[len(path):].strip("\\")
all.append(entry)
all.sort()
return all
def folder_diff(folder1_path, folder2_path):
folder1_list = ls(folder1_path)
folder2_list = ls(folder2_path)
for item1, item2 in zip(folder1_list, folder2_list):
res = filecmp.cmp(folder1_path + item1, folder2_path + item2)
data = folder_diff(folder1_path, folder2_path)
print(data)
这是一个错误
FileNotFound
文件同时存在于两个文件夹中。有谁能建议一下这方面的最新情况吗?谢谢