Verständniss Frage if Schleife
Verfasst: Montag 18. August 2014, 09:10
Moin, ich wollte ein script was ich im Netz gefunden habe etwas umschreiben, zur Zeit splitet es Dateien (nach Anzahl) in subdirs.
Ich wollte es jetzt etwas umbiegen das es mir die Daten anhand der Dateigröße in subdirs splittet, da ich gelegentlich größere Datenmengen für die offlinefraktion auf CD Brennen darf.
Allerdings benutzt der Author eine If kondition die ich nicht verstehe, daher hoffe ich das mir das hier jemand erklären kann was das genau bedeutet.
hier nur die relevante Funktion, verstehe nicht was das genau das % in der If-Schleife bedeutet,
N gibt im übrigen an wie viele Dateien in einen Ordner sollen (soll abgeändert werden das er vorher die Größe der Dateien berechnet und daran fest macht, was auch nicht das Problem ist)
Verstehe nur nicht was das % hier bedeutet und auch die (i / N + 1) Rechnung in
subdir_name = os.path.join(abs_dirname, '{0:03d}'.format(i / N + 1))
Erschließt sich mir nicht ganz was aber ggf. daran liegt das ich die Bedeutung des % nicht kenne.
Hoffe hier kann Jemand kurz Licht ins Dunkel bringen.
Danke im Vorraus
Ich wollte es jetzt etwas umbiegen das es mir die Daten anhand der Dateigröße in subdirs splittet, da ich gelegentlich größere Datenmengen für die offlinefraktion auf CD Brennen darf.
Allerdings benutzt der Author eine If kondition die ich nicht verstehe, daher hoffe ich das mir das hier jemand erklären kann was das genau bedeutet.
Code: Alles auswählen
i = 0
curr_subdir = None
N = 20
for f in files:
# create new subdir if necessary
if i % N == 0:
subdir_name = os.path.join(abs_dirname, '{0:03d}'.format(i / N + 1))
os.mkdir(subdir_name)
curr_subdir = subdir_name
# move file to current dir
f_base = os.path.basename(f)
try:
shutil.move(f, os.path.join(subdir_name, f_base))
except:
pass
i += 1
N gibt im übrigen an wie viele Dateien in einen Ordner sollen (soll abgeändert werden das er vorher die Größe der Dateien berechnet und daran fest macht, was auch nicht das Problem ist)
Verstehe nur nicht was das % hier bedeutet und auch die (i / N + 1) Rechnung in
subdir_name = os.path.join(abs_dirname, '{0:03d}'.format(i / N + 1))
Erschließt sich mir nicht ganz was aber ggf. daran liegt das ich die Bedeutung des % nicht kenne.
Hoffe hier kann Jemand kurz Licht ins Dunkel bringen.
Danke im Vorraus