पायथन में न्यूलाइन्स वाले स्ट्रिंग्स को आउटपुट, कॉन्टेनेट, स्प्लिट, डिलीट और रिप्लेस करें

व्यापार

निम्नलिखित पायथन में न्यूलाइन्स वाले स्ट्रिंग्स के संचालन का वर्णन करता है।

  • न्यूलाइन्स वाली स्ट्रिंग बनाएं, प्रिंट आउटपुट (डिस्प्ले)
    • न्यूलाइन कैरेक्टर (सिस्टम के आधार पर या तो सीआर और एलएफ दोनों)\n(एलएफ),\r\n(सीआर+एलएफ)
    • ट्रिपल कोट'',"""
    • अगर आप इंडेंट करना चाहते हैं
  • नई पंक्तियों के साथ तार की सूची को संयोजित करें
  • स्ट्रिंग को न्यूलाइन्स और लिस्ट में विभाजित करें:splitlines()
  • लाइन फीड कोड हटाएं और बदलें
  • न्यूलाइन को पीछे किए बिना प्रिंट आउटपुट

न्यूलाइन वाली स्ट्रिंग बनाएं, आउटपुट प्रिंट करें

न्यूलाइन कैरेक्टर (सिस्टम के आधार पर या तो सीआर और एलएफ दोनों)\n(एलएफ),\r\n(सीआर+एलएफ)

एक स्ट्रिंग के भीतर एक लाइन फीड कोड डालने से एक नई लाइन बन जाएगी।

s = 'Line1\nLine2\nLine3'
print(s)
# Line1
# Line2
# Line3

s = 'Line1\r\nLine2\r\nLine3'
print(s)
# Line1
# Line2
# Line3

लाइन फीड कोड का उपयोग निम्नलिखित तरीकों से किया जा सकता है। कुछ संपादक आपको लाइन ब्रेक कोड चुनने की अनुमति देते हैं।

Macを含むUnix系\n(एलएफ)
Windows系\r\n(सीआर+एलएफ)

ट्रिपल कोट'',"""

यदि स्ट्रिंग को संलग्न करने के लिए ट्रिपल कोट्स का उपयोग किया जाता है, तो यह एक स्ट्रिंग होगी, जिसमें न्यूलाइन भी शामिल है।

s = '''Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3

अगर आप इंडेंट करना चाहते हैं

ट्रिपल कोट्स भी एक स्ट्रिंग में रिक्त स्थान होते हैं, इसलिए यदि आप नीचे दिखाए गए अनुसार कोड और इंडेंट में बड़े करीने से लिखने का प्रयास करते हैं, तो अनावश्यक स्थान सम्मिलित किए जाएंगे।

s = '''
    Line1
    Line2
    Line3
    '''
print(s)
# 
#     Line1
#     Line2
#     Line3
#     

कोड में नई पंक्तियों को अनदेखा करने और इसे एक निरंतरता रेखा बनाने के लिए बैकस्लैश का उपयोग करके, इसे निम्नानुसार लिखा जा सकता है

प्रत्येक पंक्ति को ” या “” के साथ संलग्न करें और वाक्य के अंत में एक नया वर्ण ← जोड़ें।

s = 'Line1\n'\
    'Line2\n'\
    'Line3'
print(s)
# Line1
# Line2
# Line3

यहां, वाक्य रचना यह है कि लगातार स्ट्रिंग अक्षर जुड़े हुए हैं। विवरण के लिए निम्न आलेख देखें।

यदि आप एक स्ट्रिंग में इंडेंटेशन जोड़ना चाहते हैं, तो बस प्रत्येक पंक्ति में स्ट्रिंग में एक स्थान जोड़ें।

s = 'Line1\n'\
    '    Line2\n'\
    '        Line3'
print(s)
# Line1
#     Line2
#         Line3

इसके अलावा, चूंकि लाइन ब्रेक को ब्रैकेट में स्वतंत्र रूप से बनाया जा सकता है, इसलिए बैकस्लैश के बजाय कोष्ठक का उपयोग करके निम्नलिखित लिखा जा सकता है।

s = ('Line1\n'
     'Line2\n'
     'Line3')
print(s)
# Line1
# Line2
# Line3

s = ('Line1\n'
     '    Line2\n'
     '        Line3')
print(s)
# Line1
#     Line2
#         Line3

यदि आप केवल एक पंक्ति की शुरुआत को संरेखित करना चाहते हैं, तो बस ट्रिपल कोट्स की पहली पंक्ति में एक बैकस्लैश जोड़ें।

s = '''\
Line1
Line2
Line3'''
print(s)
# Line1
# Line2
# Line3

s = '''\
Line1
    Line2
        Line3'''
print(s)
# Line1
#     Line2
#         Line3

नई पंक्तियों के साथ तार की सूची को संयोजित करें

स्ट्रिंग मेथड जॉइन () का उपयोग स्ट्रिंग्स की सूची को सिंगल स्ट्रिंग में समेटने के लिए किया जा सकता है।

जब ज्वाइन () को एक न्यूलाइन कैरेक्टर से कॉल किया जाता है, तो प्रत्येक स्ट्रिंग एलिमेंट को एक न्यूलाइन के साथ जोड़ा जाता है।

l = ['Line1', 'Line2', 'Line3']

s_n = '\n'.join(l)
print(s_n)
# Line1
# Line2
# Line3

print(repr(s_n))
# 'Line1\nLine2\nLine3'

s_rn = '\r\n'.join(l)
print(s_rn)
# Line1
# Line2
# Line3

print(repr(s_rn))
# 'Line1\r\nLine2\r\nLine3'

जैसा कि ऊपर दिए गए उदाहरण में है, बिल्ट-इन फ़ंक्शन repr() का उपयोग उन स्ट्रिंग्स को जांचने के लिए किया जा सकता है जिनमें न्यूलाइन कोड होते हैं।

स्ट्रिंग को न्यूलाइन्स और लिस्ट में विभाजित करें:splitlines()

स्ट्रिंग विधि स्प्लिटलाइन () का उपयोग स्ट्रिंग को न्यूलाइन की सूची में विभाजित करने के लिए किया जा सकता है।

स्प्लिटलाइन () निम्न में से किसी भी लाइन ब्रेक कोड को विभाजित करेगा। लंबवत टैब और पेज ब्रेक भी विभाजित हैं।

  • \n
  • \r\n
  • \v
  • \f
s = 'Line1\nLine2\r\nLine3'
print(s.splitlines())
# ['Line1', 'Line2', 'Line3']

लाइन फीड कोड हटाएं और बदलें

स्प्लिटलाइन () और जॉइन () को मिलाकर, न्यूलाइन वाले स्ट्रिंग से न्यूलाइन कोड को हटाना (निकालना) संभव है या उन्हें अन्य स्ट्रिंग्स से बदलना संभव है।

s = 'Line1\nLine2\r\nLine3'

print(''.join(s.splitlines()))
# Line1Line2Line3

print(' '.join(s.splitlines()))
# Line1 Line2 Line3

print(','.join(s.splitlines()))
# Line1,Line2,Line3

लाइन फीड कोड का बैच परिवर्तन भी संभव है। भले ही लाइन ब्रेक कोड मिश्रित या अज्ञात हों, उन्हें स्प्लिटलाइन () का उपयोग करके विभाजित किया जा सकता है और फिर वांछित लाइन ब्रेक कोड के साथ जोड़ा जा सकता है।

s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3

print(repr(s_n))
# 'Line1\nLine2\nLine3'

जैसा कि ऊपर उल्लेख किया गया है, स्प्लिटलाइन () या तो न्यूलाइन कोड को विभाजित करेगा, इसलिए स्प्लिटलाइन () और जॉइन () के संयोजन की विधि के मामले में न्यूलाइन कोड के बारे में विशेष रूप से चिंतित होने की आवश्यकता नहीं है।

यदि न्यूलाइन कोड स्पष्ट है, तो इसे प्रतिस्थापित () विधि द्वारा भी बदला जा सकता है, जो स्ट्रिंग को प्रतिस्थापित करता है।

s = 'Line1\nLine2\nLine3'

print(s.replace('\n', ''))
# Line1Line2Line3

print(s.replace('\n', ','))
# Line1,Line2,Line3

हालांकि, ध्यान दें कि यह काम नहीं करेगा यदि इसमें अपेक्षा से भिन्न लाइन फीड कोड हैं।

s = 'Line1\nLine2\r\nLine3'

s_error = s.replace('\n', ',')
print(s_error)
# ,Line3Line2

print(repr(s_error))
# 'Line1,Line2\r,Line3'

s_error = s.replace('\r\n', ',')
print(s_error)
# Line1
# Line2,Line3

print(repr(s_error))
# 'Line1\nLine2,Line3'

रिप्लेस () को दोहराकर कई न्यूलाइन कोड को बदलना संभव है, लेकिन अगर ऑर्डर गलत है तो यह काम नहीं करेगा क्योंकि “\r\n” में “\n” है। ऊपर वर्णित स्प्लिटलाइन () और जॉइन () के संयोजन की विधि सुरक्षित है क्योंकि लाइन फीड कोड के बारे में चिंता करने की कोई आवश्यकता नहीं है।

s = 'Line1\nLine2\r\nLine3'

print(s.replace('\r\n', ',').replace('\n', ','))
# Line1,Line2,Line3

s_error = s.replace('\n', ',').replace('\r\n', ',')
print(s_error)
# ,Line3Line2

print(repr(s_error))
# 'Line1,Line2\r,Line3'

print(','.join(s.splitlines()))
# Line1,Line2,Line3

वाक्य के अंत में लाइन फीड कोड हटाने के लिए rstrip () विधि का उपयोग करें। rstrip() एक स्ट्रिंग के दाहिने छोर पर सफेद स्थान वर्ण (लाइन फीड सहित) को हटाने की एक विधि है।

s = 'aaa\n'
print(s + 'bbb')
# aaa
# bbb

print(s.rstrip() + 'bbb')
# aaabbb

न्यूलाइन को पीछे किए बिना प्रिंट आउटपुट

प्रिंट () फ़ंक्शन डिफ़ॉल्ट रूप से एक अनुगामी नई पंक्ति जोड़ता है। इसलिए, यदि प्रिंट () को क्रमिक रूप से निष्पादित किया जाता है, तो प्रत्येक आउटपुट परिणाम एक नई लाइन पर प्रदर्शित किया जाएगा।

print('a')
print('b')
print('c')
# a
# b
# c

ऐसा इसलिए है क्योंकि प्रिंट () के तर्क अंत का डिफ़ॉल्ट मान, जो अंत में जोड़े जाने वाले स्ट्रिंग को निर्दिष्ट करता है, न्यूलाइन प्रतीक है।

यदि आप अंत में एक नई पंक्ति नहीं चाहते हैं, तो बस तर्क अंत को एक खाली स्ट्रिंग पर सेट करें, और आउटपुट अंत में एक नई पंक्ति के बिना आउटपुट होगा।

print('a', end='')
print('b', end='')
print('c', end='')
# abc

तर्क अंत कोई स्ट्रिंग हो सकता है।

print('a', end='-')
print('b', end='-')
print('c')
# a-b-c

हालाँकि, यदि आप आउटपुट के लिए स्ट्रिंग्स को जोड़ना चाहते हैं, तो मूल स्ट्रिंग्स को प्रिंट () के अंतिम तर्क में निर्दिष्ट करने की तुलना में जोड़ना आसान है। निम्नलिखित लेख देखें।