Ist das Video nicht 1 Woche, 2 Tage, 6 Stunden 21 Minuten 32 Sekunden lang?
Youtube zeigt es als 222 Stunden 21 Minuten 17 Sekunden; 1 * 7 * 24 + 2 * 24 + 6 = 222. Ich weiß nicht, woher 17 Sekunden vs 32 Sekunden Diskrepanz kommt; kann auch ein Rundungsfehler sein.
Für mich ist es nicht so schwer einen Parser zu schreiben. Leider scheint dateutil
Intervalle nicht zu analysieren, nur Datum-Zeit-Punkte.
Update:
Ich sehe, dass ein Paket für diese gibt es, aber nur als ein Beispiel für regexp Macht, Kürze und unverständlich Syntax, hier ist ein Parser für Sie:
import re
# see http://en.wikipedia.org/wiki/ISO_8601#Durations
ISO_8601_period_rx = re.compile(
'P' # designates a period
'(?:(?P<years>\d+)Y)?' # years
'(?:(?P<months>\d+)M)?' # months
'(?:(?P<weeks>\d+)W)?' # weeks
'(?:(?P<days>\d+)D)?' # days
'(?:T' # time part must begin with a T
'(?:(?P<hours>\d+)H)?' # hourss
'(?:(?P<minutes>\d+)M)?' # minutes
'(?:(?P<seconds>\d+)S)?' # seconds
')?' # end of time part
)
from pprint import pprint
pprint(ISO_8601_period_rx.match('P1W2DT6H21M32S').groupdict())
# {'days': '2',
# 'hours': '6',
# 'minutes': '21',
# 'months': None,
# 'seconds': '32',
# 'weeks': '1',
# 'years': None}
I Aus diesen Daten errechne ich hier bewusst nicht die genaue Anzahl der Sekunden. Es sieht trivial aus (siehe oben), ist es aber nicht. Zum Beispiel ist die Entfernung von 2 Monaten vom 1. Januar 58 Tage (30 + 28) oder 59 (30 + 29), abhängig vom Jahr, während ab dem 1. März immer 61 Tage sind. Eine korrekte Kalenderumsetzung sollte all dies berücksichtigen. Für eine Youtube-Cliplängenberechnung muss es übermäßig sein.
wow, bedenkt, dass ich meine eigenen Parser geschrieben, das macht es nur alles so einfach scheint :) Dank! –
@MorganWilde Eines der großen Dinge über Python ist, dass Sie normalerweise eine vorhandene Lösung finden können, wenn nicht in der Standardbibliothek, dann auf pypi. Es empfiehlt sich, alles zu vermeiden, wenn eine Lösung bereits existiert (in jeder Sprache, nicht nur in Python). – zstewart