Ich habe eine Liste, die aus verschachtelten Listen besteht, jede verschachtelte Liste enthält zwei Werte - einen Gleitkommawert (Dateierstellungsdatum) und eine Zeichenfolge (a Name der Datei).Python: Berechnen der Differenz von Werten in einer verschachtelten Liste mit einer While - Schleife
Zum Beispiel:
n_List = [[201609070736L, 'GOPR5478.MP4'], [201609070753L, 'GP015478.MP4'],[201609070811L, 'GP025478.MP4']]
Die verschachtelte Liste wird in der Reihenfolge der ansteigenden Werte (Erstellungsdatum) bereits sortiert. Ich versuche, eine While-Schleife zu verwenden, um den Unterschied zwischen den einzelnen Gleitkommawerten zu berechnen.
Beispiel: 201.609.070.753 - 201609070736 = 17
Das Ziel ist es, die Zeitdifferenzwerte als Basis zu verwenden, um die Dateien zu gruppieren.
Das Problem, das ich habe, ist, dass, wenn die Zählung den letzten Wert für len(n_List)
erreicht, es eine IndexError
wirft, weil count+1
außerhalb des Bereichs ist.
IndexError: list index out of range
Ich kann nicht herausfinden, wie man diesen Fehler umgehen kann. Egal, was ich versuche, die Zählung ist immer von Bereich, wenn es den letzten Wert in der Liste erreicht.
Hier ist die While-Schleife, die ich verwendet habe.
count = 0
while count <= len(n_List):
full_path = source_folder + "/" + n_List[count][1]
time_dif = n_List[count+1][0] - n_List[count][0]
if time_dif < 100:
f_List.write(full_path + "\n")
count = count + 1
else:
f_List.write(full_path + "\n")
f_List.close()
f_List = open(source_folder + 'GoPro' + '_' + str(count) + '.txt', 'w')
f_List.write(full_path + "\n")
count = count + 1
PS. Die einzige Arbeit, die ich mir vorstellen kann, ist anzunehmen, dass der letzte Wert immer an die letzte Gruppe von Dateien angehängt wird. Wenn die Anzahl len(n_List - 1)
erreicht, überspringe ich die Berechnung der Zeitdifferenz und füge den letzten Wert automatisch zur letzten Gruppe hinzu. Während dies wahrscheinlich die meiste Zeit funktioniert, kann ich Randfälle sehen, bei denen der endgültige Wert in der Liste in eine separate Gruppe gehen muss.
In welchen Ordner soll die letzte Datei dann gehen? – Karin
Die Dateien gehen eigentlich nirgendwohin, ich benutze nur die Zeit diff Berechnung, um die Dateien in verschiedene Listen zu gruppieren. Die Dateipfade werden basierend auf den Gruppierungen in separate txt-Dateien geschrieben. In diesem Fall würde der letzte Wert zur letzten Zeile der letzten Textdatei hinzugefügt. Ist das sinnvoll? – vgndc
Was ist mit den letzten Daten? – galaxyan