2016-08-02 1 views
1

J'essaie actuellement de convertir un nombre de secondes en notation de minutes et de secondes. J'utilise divmod et j'essaie de transformer le résultat en une valeur datetime. J'ai le code suivant:datetime.strptime() renvoie une erreur de formatage avec% f

from datetime import datetime, timedelta 
processtime = 69.009 
m, s = divmod(processtime, 60) 
m= str(m) 
m=m[:1] 
s= str(s) 
s=s[:5] 
processstring= m+ ' ' + s 
datetimeprocess = datetime.strptime(processstring, "%M %S.f") 

Cependant, chaque fois que je fais ce que j'obtiens cette erreur:

ValueError: time data '1 9.009' does not match format '%M %S.f' 

Je suis assez sûr que je l'ai adapté au format et je ne peux pas comprendre ce que le Le problème est.

Répondre

1

Vous manque un % avant f:

datetimeprocess = datetime.strptime(processstring, "%M %S.%f") 

résultats des tests:

>>> from datetime import datetime, timedelta 
>>> processstring = '1 9.009' 
>>> datetimeprocess = datetime.strptime(processstring, "%M %S.%f") 
>>> print datetimeprocess 
1900-01-01 00:01:09.009000 
>>> 
+0

Oh mon dieu merci, je suis un idiot! – Kprakash

+0

@Kprakash De rien. Parfois, nous avons juste besoin d'une seconde paire d'yeux :) – pah