Als erstes Vergleicht es alle Dateinamen, wenn die Namen stimmen liest es immer von den 2 Dateien mit gleichen namen den inhalt in bytes aus.
wenn die bytes auch stimmen giebt es eine meldung.
Mein Problem:
Es fuktioniert nur wenn es dateien im ordner hat.
ich wollte es rekursiv machen aber es ging nie.
Könnt ihr mir helfen?
Das ist der Code
Code: Alles auswählen
# -*- coding: utf-8 -*-
import os
import sys
import time
if sys.platform == 'win32':
zeichen = "\\"
else:
zeichen = "/"
ordner1 = str(input("Bitte ersten Ordner angeben: ") + zeichen)
ordner2 = str(input("Bitte zweiten Ordner angeben:") + zeichen)
start = time.time()
dateien1 = os.listdir(ordner1)
dateien2 = os.listdir(ordner2)
grösse1 = 0
grösse2 = 0
zähler = 0
for o in dateien1:
grösse1 += os.path.getsize(ordner1 + o)
for o in dateien2:
grösse2 += os.path.getsize(ordner2 + o)
grösse_1 = str(grösse1)
grösse_2 = str(grösse2)
if dateien1 == dateien2:
for i in range(len(dateien1)):
zähler += 1
print(str(zähler) + "/" + str(len(dateien1)) , end="\r")
datei1 = open(ordner1 + dateien1[i], "rb")
bytes1 = datei1.read()
datei1.close()
datei2 = open(ordner2 + dateien2[i], "rb")
bytes2 = datei2.read()
datei2.close()
if bytes1 == bytes2:
pass
else:
print("Die Ordner haben nicht den gleichen Inhalt!\nNamen gleich, Inhalt nicht.\nOrdner Nr.1 ist " + grösse_1 + " Bytes gross.\nOrdner Nr.2 ist " + grösse_2 + " Bytes gross.")
print(zähler)
print("Die Ordner haben den gleichen Inhalt!\nNamen und Inhalt sind gleich.\nBeide Ordner sind " + grösse_1 + " Bytes gross.")
ende = time.time()
print("Laufzeit: " + str(ende - start) + " Sekunden")
else:
print("Die Ordner haben nicht den gleichen Inhalt!\nNamen sind nicht gleich\nOrdner Nr.1 ist " + grösse_1 + " Bytes gross.\nOrdner Nr.2 ist " + grösse_2 + " Bytes gross.")