2011-02-28 4 views
8

के साथ निश्चित लंबाई निर्धारित करना मेरे पास '60' या '100' की तरह स्ट्र है। मुझे '00060' और '00100' होने के लिए स्ट्र की आवश्यकता है,पायथन

मैं यह कैसे कर सकता हूं? कोड इस तरह कुछ है: मैं प्लग के रूप में '0' + '0' + '0' का उपयोग कर रहा था।

num = 60 
formatted_num = u'%05d' % num 

तारों के रूप में संख्या प्रारूपित करने के बारे में अधिक जानकारी के लिए देखें: अब घ == 0006000100

a4 ='60' 
    a5 ='100' 

    d=('0'+'0'+'0'+a4+'0'+'0'+a5) 

उत्तर

23

के बाद से आप कर रहे हैं तार जोड़ तोड़, str.zfill() वास्तव में यदि यह पहले से ही एक स्ट्रिंग आप .zfill() विधि का उपयोग करना चाहते हो सकता है कि आप क्या चाहते है।

>>> s1, s2 = '60', '100' 
>>> print s1.zfill(5), s2.zfill(5) 
00060 00100 
+2

+1 नीट, उस बारे में नहीं पता था – Cameron

10
इस तरह

ठीक करना होगा।

अपना नंबर पहले से ही एक स्ट्रिंग है (के रूप में अपने अद्यतन सवाल इंगित करता है), तो आप rjust स्ट्रिंग पद्धति का उपयोग करके सही चौड़ाई के शून्य से पैड यह कर सकते हैं:

num = u'60' 
formatted_num = num.rjust(5, u'0') 
+0

यह '60' के रूप में आता है, उदाहरण के लिए मैं 0006000100, – Merlin

+0

संयोजन कर रहा हूं डेटा फ़ाइल में '60' – Merlin

+0

@user: क्या आप जिस कोड का उपयोग कर रहे हैं उसे पोस्ट कर सकते हैं? – Cameron

0

अपने पसंदीदा अजगर प्रलेखन पढ़ने का आनंद:

http://docs.python.org/library/string.html#formatstrings

"" "

चौड़ाई क्षेत्र एक शून्य से पहले किया जाता है ('0') चरित्र, यह शून्य-पैडिंग को सक्षम बनाता है। यह '=' के संरेखण प्रकार और '0' के एक भरने वाले चरित्र के बराबर है। "" "

2

हैं" 60 "पहले से ही एक स्ट्रिंग है, तो आप एक नंबर करने के लिए यह स्वरूपण लागू करने से पहले कन्वर्ट करने के लिए है सबसे अधिक व्यावहारिक एक बस सी printf की तरह काम करता है:।

a ="60" 
b = "%05d" % int(a)