User:Python
Jump to navigation
Jump to search
- ESERCIZIO 3 ESAME 20 GIUGNO 2013
- Scrivere un programma python o uno script bash per cercare all'interno
- della directory corrente tutti i file che abbiano lo stesso contenuto
import os,sys
import filecmp
def ordina(A,B):
for i in range(0,len(B)) :
for j in range(i,len(B)) :
if(B[i]>B[j]) :
A[i],A[j]=A[j],A[i]
B[i],B[j]=B[j],B[i]
return A,B
def main() :
A=[]
B=[]
l=[]
H={}
P=[]
print os.getcwd()
pa=os.getcwd()
for root, dirs, files in os.walk(pa):
if(root != pa):
H[root]=0
for root, dirs, files in os.walk(pa):
if (root == pa) :
for name in files :
f = pa + '/' + name
A = os.listdir(pa)
P = H.keys()
for i in A :
f = pa + '/' + i
c = f in P
if(c == 1) :
A.remove(i)
x=-1
for root, dirs, files in os.walk(pa):
if (root == pa) :
for name in files :
c = name in A
if(c == 1) :
x=x+1
statinfo = os.stat(name)
B.insert(x,statinfo.st_size)
print
l=list()
(A,B)=ordina(A,B)
j=1
c=0
z=0
for i in range(0,(len(A)-1)) :
if(B[i] == B[j]) :
F1 = open(A[i],'r')
F2 = open(A[j],'r')
if(filecmp.cmp(A[i], A[j])) :
c=1
if(z==0):
l.append(A[i])
z=1
l.append(A[j])
if (B[i] != B[j] and c==1):
print "Questi file sono uguali di dimensione : ",B[i], "Byte"
print l
l=[]
c=0
z=0
print
j=j+1
if(c==1) :
print "Questi file sono uguali di dimensione : ",B[i]
print l
print
if __name__ == "__main__" :
main()