के रूप में अन्य उत्तर की व्याख्या, प्रत्येक पंक्ति एक नई पंक्ति है; जब आप print
एक नंगे स्ट्रिंग करते हैं, तो यह अंत में एक पंक्ति जोड़ता है। इसके चार तरीके हैं; बाकी सब कुछ एक ही दो विचारों पर एक भिन्नता है।
सबसे पहले, आप नई-पंक्तियों पट्टी कर सकते हैं के रूप में आप उन्हें पढ़ने:
with open("a.txt") as f:
for line in f:
print line.rstrip()
यह किसी अन्य पिछली श्वेत रिक्ति, रिक्त स्थान या टैब की तरह है, साथ ही न्यू लाइन हटेगा। आमतौर पर आपको इसकी परवाह नहीं है।
with open("a.txt", "rU") as f:
for line in f:
print line.rstrip('\n')
हालांकि, अगर आप जानते हैं कि पाठ फ़ाइल हो जाएगा, कहते हैं, एक Windows- न्यू लाइन फ़ाइल, या एक देशी-टू: यदि आप करते हैं, तो आप शायद सार्वभौमिक न्यू लाइन मोड का उपयोग करने, और बंद पट्टी नई-पंक्तियों चाहते -whichever मंच-मैं से चल-ऑन-राइट अब न्यू लाइन फ़ाइल, आप उचित अंत स्पष्ट रूप से पट्टी कर सकते हैं:
with open("a.txt") as f:
for line in f:
print line.rstrip('\r\n')
with open("a.txt") as f:
for line in f:
print line.rstrip(os.linesep)
यह करने के लिए अन्य तरीके से मूल न्यू लाइन छोड़ने के लिए है , और सिर्फ एक अतिरिक्त प्रिंटिंग से बचें। जबकि आप sys.stdout
पर sys.stdout.write(line)
के साथ लिखकर ऐसा कर सकते हैं, तो आप इसे print
से भी कर सकते हैं।
यदि आप एक नई लाइन प्रिंट करने के बजाय print
कथन के अंत में एक अल्पविराम जोड़ते हैं, तो यह एक "स्मार्ट स्पेस" जोड़ता है। Exactly what that means थोड़ा मुश्किल है, लेकिन विचार यह माना जाता है कि यह एक जगह जोड़ता है जब इसे चाहिए, और जब कुछ भी नहीं होना चाहिए। सबसे DWIM एल्गोरिदम की तरह, यह हमेशा चीज़ों नहीं मिलता है राइट लेकिन इस मामले में, यह करता है:
with open("a.txt") as f:
for line in f:
print line,
बेशक अब हम यह सोचते हैं कर रहे हैं कि फाइल की नई-पंक्तियों आपके मेल खाते हैं terminal's-यदि आप के साथ इस कोशिश, यूनिक्स टर्मिनल पर क्लासिक मैक फाइलें कहें, आप अंतिम पंक्ति पर प्रत्येक लाइन प्रिंटिंग के साथ समाप्त हो जाएंगे। फिर, आप सार्वभौमिक न्यूलाइन का उपयोग कर इसके आसपास हो सकते हैं।
वैसे भी, आप प्रिंट स्टेटमेंट के बजाय प्रिंट फ़ंक्शन का उपयोग करके स्मार्ट स्पेस के डीडब्ल्यूआईएम जादू से बच सकते हैं। अजगर 2.x में, आप एक __future__
घोषणा का उपयोग करके इस प्राप्त:
from __future__ import print_function
with open("a.txt") as f:
for line in f:
print(line, end='')
या यदि आप चाहें तो आप six
की तरह एक तीसरे पक्ष के आवरण लाइब्रेरी का उपयोग कर सकते हैं।
ओपी स्पष्ट रूप से पायथन 2 का उपयोग कर रहा है, और मुझे यकीन नहीं है कि 2.x उपयोगकर्ताओं के लिए 'print_function' का सुझाव हमेशा एक अच्छा विचार है। और 'प्रिंट' के जादू नरम स्थान का उपयोग करना शायद एक बुरा विचार है यदि आप पहले नहीं सीखते कि इसका क्या अर्थ है और यह कैसे काम करता है। जिसका अर्थ है कि आपका स्पष्ट 'लेखन' सबसे अच्छा जवाब हो सकता है (यही कारण है कि मैंने आपका जवाब उखाड़ फेंका, और लगता है कि ओपी इसे स्वीकार करने का अधिकार था)। – abarnert
आरईएफ https://docs.python.org/2/library/functions.html#print –