2012-11-20 15 views
8

मेरे पास कोड है जो 'YYYY-MM-DD' प्रारूप में बड़ी संख्या में तिथियां पढ़ता है। इन सभी तिथियों को पार्स करना, ताकि यह एक, दो, या तीन दिनों को जोड़ सके, फिर उसी प्रारूप में वापस लिखना चीजों को काफी धीमा कर रहा है।एक तेज गति?

3214657 14.330 0.000 103.698 0.000 trade.py:56(effective) 
3218418 34.757 0.000 66.155 0.000 _strptime.py:295(_strptime) 

day = datetime.datetime.strptime(endofdaydate, "%Y-%m-%d").date() 

कोई सुझाव यह है कि इसे थोड़ा सा (या बहुत) कैसे गति दें?

उत्तर

25

क्या कारक 7 काफी है?

datetime.datetime.strptime(a, '%Y-%m-%d').date()  # 8.87us 

datetime.date(*map(int, a.split('-')))     # 1.28us 

संपादित करें: स्पष्ट टुकड़ा करने की क्रिया के साथ महान विचार:

datetime.date(int(a[:4]), int(a[5:7]), int(a[8:10])) # 1.06us 

कि बनाता कारक 8.

+3

mwhhhah। मुझे लगता है कि मैं तुम्हें लूंगा। –

+3

संदर्भ में: strptime = 128s, यह = 61s, और 55 के लिए स्पष्ट हो: 'datetime.date (int (a [: 4]), int (a [5: 7]), int (a [8:10])) '। अब strftime को बदलने के लिए और संभावित रूप से एक और 10s prune ... thx। –

संबंधित मुद्दे