Wie (Uhr/Tages) Zeiten zusammen zählen ?
Verfasst: Montag 22. November 2021, 16:15
Hallo, ich schaffe es leider nicht mehrere Zeitangaben zusammen zu zählen.
Und warum funktioniert folgendes Konstrukt zwar zum abziehen einer Zeit, nicht aber wenn man sie so mit einem Pluszeichen zusammenzählen will ?
Hintergrund: Ich habe mir mit Mediainfo die Spieldauern einzelner Lieder in eine Datei ausgeben lassen.
Diese möchte ich zu einer Gesammtspielzeit zusammenrechnen. Dankt datetime.strptime() habe ich jetzt die Spieldauer aller Songs im Format %H:%M:%S vorliegen, schaffe es aber nicht eine Lösung zu finden diese zusammen zu zählen ohne erst alles in Sekunden zu wandeln.
EDIT:
Der vollständigkeit halber:
Gegeben ist beispielsweise eine Datei 'www.media' mit dem Inhalt
Dise Datei bearbeite ich folgendermassen: Das ist sicher etwas umständlich, aber es funktioniert soweit. Und ist eben selbst erarbeitet.
Und warum funktioniert folgendes Konstrukt zwar zum abziehen einer Zeit, nicht aber wenn man sie so mit einem Pluszeichen zusammenzählen will ?
Code: Alles auswählen
from datetime import datetime
s1 = '10:04:20'
s2 = '00:04:10'
format = "%H:%M:%S"
timea = (datetime.strptime(s1,format)) - (datetime.strptime(s2,format))
print(re.sub(".* ","",str(timea)))
Diese möchte ich zu einer Gesammtspielzeit zusammenrechnen. Dankt datetime.strptime() habe ich jetzt die Spieldauer aller Songs im Format %H:%M:%S vorliegen, schaffe es aber nicht eine Lösung zu finden diese zusammen zu zählen ohne erst alles in Sekunden zu wandeln.
EDIT:
Der vollständigkeit halber:
Gegeben ist beispielsweise eine Datei 'www.media' mit dem Inhalt
Code: Alles auswählen
Trackname..: 01- Song - Never Say Die
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 4 min 39 s ## Groesse: 5.34 MiB
Trackname..: 02- Song - Resurrector
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 4 min 24 s ## Groesse: 5.05 MiB
Trackname..: 03- Song - The Demise
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 4 min 0 s ## Groesse: 4.59 MiB
Trackname..: 04- Song - Clockwork Mary
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 4 min 19 s ## Groesse: 4.95 MiB
Trackname..: 05- Song - Tear Down The Walls
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 3 min 39 s ## Groesse: 4.19 MiB
Trackname..: 06- Song - Come Back To Black
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 4 min 49 s ## Groesse: 5.51 MiB
Trackname..: 07- Song - All My Life
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 2 min 34 s ## Groesse: 2.96 MiB
Trackname..: 08- Song - Destiny_s To Come
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 4 min 34 s ## Groesse: 5.24 MiB
Trackname..: 09- Song - The Last Redemption
Info.......: MPEG Audio 160 kb/s @ CBR ## Laenge: 13 min 39 s ## Groesse: 15.6 MiB
Trackname..: demo
Info.......: MPEG Audio 56.0 kb/s @ CBR ## Laenge: 5 s 330 ms ## Groesse: 38.0 KiB
Trackname..: thunder
Info.......: MPEG Audio 98.5 kb/s @ VBR ## Laenge: 25 s 103 ms ## Groesse: 303 KiB
Code: Alles auswählen
track_in = "F:\Python\www.media"
if os.path.isfile(track_in):
file = open(track_in)
lines_in = file.readlines()
file.close()
# Vorlagendatei Zeilenweise bearbeiten
k = float()
format1 = "Laenge: %M min %S s ##"
format2 = "Laenge: %S s %f ms ##"
format3 = "%H:%M:%S"
for line_t in lines_in:
matches_2 = re.search("Laenge.*\#", line_t)
try:
if re.search("min",matches_2.group()):
try:
timea = datetime.strptime(matches_2.group(),format1)
timef = re.sub(".* ","",str(timea))
except:
pass
if re.search("ms",matches_2.group()):
try:
timea = datetime.strptime(matches_2.group(),format2)
timef = re.sub(".* ","",str(timea))
timef = re.sub("\..*","",timef )
except:
pass
print(timef)
except:
pass