比较两个文件夹里的文件
1.1 读取两个文件夹里的文件
files=os.listdir(r'dir\\\\')
Q1 编码
encode decode unicode?
utf8 gbk ?
1.2 依次获取文件名和文件后缀
listdir 直接获得文件名,可以直接比较文件名
1.3 比较
cmp(name1,name2)
1.4 输出不一样的 文件
判断cmp函数返回值
/****cmp1.py****/
import os
f1=os.listdir(r'C:\Users\R21745\Desktop\ENU')
f2=os.listdir(r'C:\Users\R21745\Desktop\ELL')
len1=len(f1)
len2=len(f2)
n=0
for i in range(8):
x=cmp(f1[i],f2[i])
if x!=0:
print "f1"+" "*(5+len(f1[i]))+"f2"
print f1[i]+" "*5+f2[i]
n+=1
else:
pass
print n
----------------
result:
f1 f2
cmp.py eLCStandStud_student.chm
1
f1 f2
eLCStandStud_student.chm ELCStand_teacher.chm
2
f1 f2
ELCStand_teacher.chm image026.jpg
3
---------------------------------------------------------------
rethink
2.1 怎么随机比较文件(可能文件夹里的文件顺序不一致,默认f1[0]和f2[0]进行比较的)
2.2如何格式化输出 使结果易读
2.3 两文件数量不一致时的处理
/*****cmp2.py*****/
print len1,len2
for i in range(len1):
if f1[i] in f2:
pass
else:
print "f1: "+f1[i]
for j in range(len2):
if f2[j] in f1:
pass
else:
print "f2: "+f2[j]
----------------------------------------------------------------------
rethink
3.1 文件名后缀忽略大小写
/*****cmp3.py*********/
print len1,len2
for i in range(len1):
s=f1[i].split(".")
s1=s[0]+"."+s[-1].lower()
s2=s[0]+"."+s[-1].upper()
if s1 in f2 or s2 in f2:
pass
else:
print "f1: "+f1[i]
n+=1
print n
for j in range(len2):
x=f2[j].split(".")
x1=x[0]+"."+x[-1].lower()
x2=x[0]+"."+x[-1].upper()
if x1 in f1 or x2 in f1:
pass
else:
print "f2: "+f2[j]