python简单实现目录对比

时间:2023-03-09 18:40:17
python简单实现目录对比
[root@localhost python]# cat dircmptest.py
#!/usr/bin/python
import filecmp
path1="/root/python/a"
path2="/root/python/b"
test=filecmp.dircmp(path1,path2) #比较目录,path1是左,path2是右
#test.report() #比较当前目录中指定的内容
#test.report_partial_closure() #比较当前目录及第一级子目录内容
#test.report_full_closure() #递归比较目录内的所有内容
print 'all files and dirs in left_list(path1): '+str(test.left_list) #显示左列表内容
print "common files"+str(test.common_files) #显示两个目录共同的文件(文件名相同)
print "diff files"+str(test.diff_files) #显示两个目录内文件名相同但是内容不同的文件
print "common dirs"+str(test.common_dirs) #显示两个目录内子目录相同的目录名
print "common dirs and files"+str(test.common) #显示两个目录名称相同的文件或者目录
print "only in left list,no in right list: "+str(test.left_only) #显示只有左目录特有的文件
print "same_files is: "+str(test.same_files) #显示两个目录内文件名相同且内容相同的文件
[root@localhost python]# ./dircmptest.py
all files and dirs in left_list(path1): ['a.txt', 'b.txt', 'info.py', 'k', 'k.py', 'kali', 'linux']
common files['kali', 'a.txt', 'info.py']
diff files['a.txt']
common dirs['k']
common dirs and files['kali', 'a.txt', 'info.py', 'k']
only in left list,no in right list: ['b.txt', 'k.py', 'linux']
same_files is: ['kali', 'info.py']
[root@localhost python]# ls a a/k b b/k
a:
a.txt b.txt info.py k kali k.py linux a/k:
c.txt b:
a.txt bp c.txt info.py k kali b/k:
k.py linux
[root@localhost python]# cat a/a.txt b/a.txt
linux
ok
[root@localhost python]# cat a/kali b/kali
a
a
[root@localhost python]#