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