Difference between revisions of "User talk:Python"

From Sistemi Operativi
Jump to navigation Jump to search
(Created page with " #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 contenu...")
 
(Blanked the page)
Line 1: Line 1:
  
−
#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()
 

Revision as of 16:53, 23 November 2013