2010-12-06 17 views

Répondre

5

Pour analyser le temps, l'utilisation strptime

>>> x = '00:03:12,200 --> 00:03:14,316' 
>>> x1 = x.split('-->') 
>>> x1 
['00:03:12,200 ', ' 00:03:14,316'] 
>>> t1 = datetime.datetime.strptime(x1[0], '%H:%M:%S,%f ') 
>>> t1 
datetime.datetime(1900, 1, 1, 0, 3, 12, 200000) 

utilisation timedelta

>>> t = datetime.timedelta(seconds=1) 
>>> t 
datetime.timedelta(0, 1) 
>>> 
>>> t1 + t 
datetime.datetime(1900, 1, 1, 0, 3, 13, 200000) 
>>> k = t1 + t 

Reconvertir à chaîne

>>> k.strftime('%H:%M:%S,%f ') 
'00:03:13,200000 ' 
+0

La question est de savoir comment convertir le « 00: 03: 12,200 "chaîne dans l'objet temps. J'obtiens des erreurs pour le t = datetime.strptime ("00: 02: 59,840", "% HH:% MM:% SS, mmm"). Dit: ValueError: données de temps '00: 02: 59,840 'ne correspondent pas au format'% HH:% MM:% SS, mmm ' – user63503

+0

t = datetime.strptime ("00:02:59", "% HH:% MM :% SS% mmm ") ou"% HH:% MM:% SS%, mmm "ou"% HH:% MM:% SS,% mmm "- tous donnent les erreurs. J'ai une virgule après quelques secondes, qui ne savent pas comment représenter dans la chaîne de format. – user63503

+0

Pour moi quand je fais: t = datetime.strptime ("00: 02: 59,840", "% HH:% MM:% SS,% f") il montre une erreur: ValueError: données de temps '00: 02: 59,840 'ne correspond pas au format'% HH:% MM:% SS,% f ' – user63503

4

Pour ajouter 10 secondes, vous pouvez utiliser ceci:

datetime.datetime.now() + datetime.timedelta(seconds=10) 

Pour analyser ce qui précède, vous pouvez utiliser strptime:

datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M") 

Jetez un oeil ici pour plus de détails:

+0

J'ai un format d'horodatage spécifique. Comment faire python pour comprendre la chaîne comme '00: 03: 12,200 'comme le temps? – user63503

+0

En fournissant une chaîne de format à 'strptime' qui décrit le format. Lisez la documentation fournie. –

+0

Oui, comme le mentionne Karl, allez au lien ci-dessus, faites défiler jusqu'à la fin - vous avez tous les spécificateurs dont vous avez besoin ici. –