दिलचस्प पोस्ट
जीआईटी को सूचीबद्ध करना और हटाने से कोई शाखा नहीं है (झूठ?) उपयोगकर्ता एजेंट स्टाइलशीट क्या है ऑपरेटर की विरासत के साथ समस्या = सी ++ में जेसन फाइल के मोंगोइमपोर्ट क्या पृष्ठ को ताज़ा करने के बिना ब्राउज़र का एड्रेस बार बदलने का एक तरीका है? वर्ग विकल्प का क्या मतलब है? मैक्रोज़ में जाहिरा तौर पर अर्थहीन करते-करते और if-else बयान क्यों का उपयोग करें? सी # में टाइप करने के लिए स्ट्रिंग कन्वर्ट करें कैसे JSON को विरासत में मिली वस्तुओं को तार करने के लिए? एक आईएसओ 8601 टाइमस्टैम्प को एनएसडीट में परिवर्तित करना: यूटीसी समय ऑफसेट के साथ कैसे एक समझौता होता है? दूषित जीआईटी भंडार को ठीक कैसे करें? एंड्रॉइड पर जावा का उपयोग कर एक पीडीएफ फाइल प्रस्तुत करें ग्रिडविव asp.net के साथ सॉर्टिंग और पेजिंग यादृच्छिक स्ट्रिंग जो एक regexp मेल खाता है क्लीनअप PHP सत्र फ़ाइलें

पायथन: आउटपुट स्ट्रिंग प्रारूप, सही संरेखण

मैं एक पाठ फ़ाइल संसाधित कर रहा हूं जिसमें x, y, z निर्देशांक शामिल हैं

1 128 1298039 123388 0 2 .... 

प्रत्येक पंक्ति को 3 मदों में सीमांकित किया जाता है

 words = line.split() 

डेटा प्रसंस्करण के बाद मुझे निर्देशांक वापस दूसरी टेक्सटाइल फ़ाइल में लिखना होगा ताकि प्रत्येक कॉलम में आइटम सही (साथ ही इनपुट फ़ाइल) गठबंधन कर सकें। हर पंक्ति निर्देशांक से बना है

 line_new = words[0] + ' ' + words[1] + ' ' words[2]. 

क्या सी + + की तरह कोई मैनिपुलेटर है std::setw() आदि सी + + में चौड़ाई और संरेखण निर्धारित करने की इजाजत है?

वेब के समाधान से एकत्रित समाधान "पायथन: आउटपुट स्ट्रिंग प्रारूप, सही संरेखण"

नए str.format वाक्यविन्यास का उपयोग करके इस दृष्टिकोण की कोशिश करें:

 line_new = '{:>12} {:>12} {:>12}'.format(word[0], word[1], word[2]) 

और यह कैसे पुराने % सिंटैक्स (पायथन के पुराने संस्करणों के लिए उपयोगी है जो कि str.format समर्थन नहीं करते हैं) का उपयोग करने के लिए यहां है:

 line_new = '%12s %12s %12s' % (word[0], word[1], word[2]) 

आप इसे इस तरह संरेखित कर सकते हैं:

 print('{:>8} {:>8} {:>8}'.format(*words)) 

जहां > अर्थ है " सही से संरेखित करें " और 8 विशिष्ट मान के लिए चौड़ाई है

और यहाँ एक सबूत है:

 >>> for line in [[1, 128, 1298039], [123388, 0, 2]]: print('{:>8} {:>8} {:>8}'.format(*line)) 1 128 1298039 123388 0 2 

Ps। *line अर्थ है कि line सूची को अनपैक किया जाएगा, इसलिए। .format(*line) .format(line[0], line[1], line[2]) (मान लीजि line केवल तीन तत्वों के साथ एक सूची है)।

यह rjust का उपयोग करके प्राप्त किया जा सकता है:

 line_new = word[0].rjust(10) + word[1].rjust(10) + word[2].rjust(10) 

आउटपुट का सरल सारणीकरण:

 a = 0.3333333 b = 200/3 print("variable a variable b") print("%10.2f %10.2f" % (a, b)) 

उत्पादन:

 variable a variable b 0.33 66.67 

% 10.2f: 10 न्यूनतम लंबाई है और 2 दशमलव स्थानों की संख्या है।