PDA

View Full Version : [Python] Confronto tra files binari


Unrue
12-12-2014, 10:21
Ciao a tutti,

avrei bisogno di confrontare die files binari in Python 3.3. Sto utilizzando il modulo filecmp e questo è quanto ho scritto:


from filecmp import dircmp

def checkDiff(dir1, dir2):
ret_value = 0
dcmp = dircmp(dir1, dir2, ignore=['.tdat'])
if dcmp.diff_files:
for name in dcmp.diff_files:
print("diff_file %s found in %s and %s" % (name, dcmp.left,
dcmp.right))
ret_value = -1

return ret_value



Ho due domande: la prima è come faccio ad escludere dal confronto tutti i files con una certa estensione (esempio: .tdat). Ho provato con il flag ignore=['*.tdat'] nel costruttore dircmp ma non funziona.

La seconda domanda riguarda la modalità shallow. Non ho capito se dircmp la utilizza o meno e se si come si imposta.

Grazie.

oNaSsIs
15-12-2014, 18:55
Dal reference (https://docs.python.org/3/library/filecmp.html#filecmp.dircmp).
The dircmp class compares files by doing shallow comparisons as described for filecmp.cmp().

Per quanto riguarda il filtro dei file, non sono sicuro, ma credo tu debba costruire da solo la lista dei nomi dei file con quella estensione e passarla al parametro ignore.

Unrue
16-12-2014, 09:23
Grazie, mi era sfuggito. Ma come faccio a non usare la modalità shallow? Da quanto ho capito tale modalità non è molto sicura, nel senso che non fa un controllo del contenuto del file.

oNaSsIs
16-12-2014, 20:39
Forse devi usare filecmp.cmpfiles che consente di disabilitare la modalità shallow.