2013-08-16 20 views

उत्तर

14

str.rstrip()पीछे नई लाइन को हटा देता है, मध्य में सभी न्यूलाइन नहीं। आखिरकार आपके पास एक लंबी स्ट्रिंग है।

का उपयोग अपने दस्तावेज़ को लाइनों में विभाजित करने के लिए; आप इसे पुन: शामिल कर सकते हैं अगर आप चाहते हैं:

doclines = doc.splitlines() 
doc_rejoined = ''.join(doclines) 

लेकिन अब doc_rejoined सभी लाइनों परिसीमक के बिना एक साथ चल रहा होगा।

2

rstrip पूरे स्ट्रिंग से रिक्त स्थान पीछे स्ट्रिप्स। यदि आप इसे अलग-अलग लाइनों पर काम करने की उम्मीद कर रहे थे, तो आपको doc.split('\n') जैसे कुछ का उपयोग करके पहले स्ट्रिंग को स्ट्रिंग में विभाजित करने की आवश्यकता होगी।

+2

या बस 'प्रतिस्थापित करें (' \ n ',' ')'। रेखा के अंत में एक लाइन के अंत को छोड़कर कहीं भी नहीं होता है। – user2357112

+0

@ user2357112 बेस्ट उत्तर। – Deneb

3

क्योंकि आप एक स्ट्रिंग की तरह दिखता में पूरे दस्तावेज़ पढ़ें:

'a\nb\nc\nd\n' 

जब आप कि स्ट्रिंग पर एक rstrip('\n') करते हैं, केवल सबसे दायीं ओर \n, हटा दिया जाएगा अन्य सभी अछूते ही रहे, तो स्ट्रिंग इस तरह दिखेगा:

'a\nb\nc\nd' 

समाधान फ़ाइल को लाइनों में विभाजित करना होगा और फिर प्रत्येक पंक्ति को सही पट्टी करना होगा। या बस कुछ नए अक्षरों को प्रतिस्थापित करें: s.replace('\n', ''), जो आपको 'abcd' देता है।

1

ऐसा करें:

with open('doc.txt') as f: 
    for line in f: 
     print line, 

स्पष्टीकरण:

  • with उपयोग कर रहा है एक फ़ाइल को खोलने की सिफारिश की रास्ता है, जो अंत में फ़ाइल को बंद करने का ख्याल रखता है
  • आप पुनरावृति कर सकते हैं for line in f
  • का उपयोग कर फ़ाइल में प्रत्येक पंक्ति पर अब rstrip() पर कॉल करने की आवश्यकता नहीं है, क्योंकि हम पढ़ रहे हैं और एक समय में एक लाइन को प्रिंट करना
0

replace का उपयोग करने पर विचार करें और '\ n' के प्रत्येक उदाहरण को '' 'के साथ बदलें। यह इनपुट टेक्स्ट में सभी नए लाइन वर्णों से छुटकारा पा जाएगा।

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