পাইথনে নতুন লাইন সম্বলিত স্ট্রিং আউটপুট, সংযোজন, বিভক্ত, মুছুন এবং প্রতিস্থাপন করুন

ব্যবসায়

নিম্নলিখিতটি পাইথনে নতুন লাইন ধারণকারী স্ট্রিংগুলির অপারেশন বর্ণনা করে।

  • নতুন লাইন, প্রিন্ট আউটপুট (প্রদর্শন) ধারণকারী স্ট্রিং তৈরি করুন
    • নিউলাইন অক্ষর (সিআর এবং এলএফ উভয়ই বা সিস্টেমের উপর নির্ভর করে)\n(LF),\r\n(CR+LF)
    • ট্রিপল উদ্ধৃতি'',"""
    • আপনি ইন্ডেন্ট করতে চান
  • নতুন লাইনের সাথে স্ট্রিংগুলির একটি তালিকা সংযুক্ত করুন
  • নতুন লাইন এবং তালিকায় স্ট্রিং বিভক্ত করুন:splitlines()
  • লাইন ফিড কোডগুলি সরান এবং প্রতিস্থাপন করুন
  • প্রিন্ট আউটপুট নতুন লাইনের পিছনে ছাড়াই

নতুন লাইন, প্রিন্ট আউটপুট ধারণকারী স্ট্রিং তৈরি করুন

নিউলাইন অক্ষর (সিআর এবং এলএফ উভয়ই বা সিস্টেমের উপর নির্ভর করে)\n(LF),\r\n(CR+LF)

একটি স্ট্রিং মধ্যে একটি লাইন ফিড কোড সন্নিবেশ একটি নতুন লাইন ফলাফল হবে.

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

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

লাইন ফিড কোড নিম্নলিখিত উপায়ে ব্যবহার করা যেতে পারে. কিছু সম্পাদক আপনাকে একটি লাইন বিরতি কোড নির্বাচন করার অনুমতি দেয়।

Macを含むUnix系\n(LF)
Windows系\r\n(CR+LF)

ট্রিপল উদ্ধৃতি'',"""

যদি ট্রিপল উদ্ধৃতিগুলি স্ট্রিংটি ঘেরাও করার জন্য ব্যবহার করা হয়, তাহলে এটি একটি স্ট্রিং হবে, নতুন লাইন সহ।

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

আপনি ইন্ডেন্ট করতে চান

ট্রিপল কোটগুলিও একটি স্ট্রিং-এ স্পেস, তাই আপনি যদি নীচে দেখানো কোড এবং ইন্ডেন্টে সুন্দরভাবে লেখার চেষ্টা করেন, তাহলে অপ্রয়োজনীয় স্পেস ঢোকানো হবে।

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

কোডে নতুন লাইনগুলিকে উপেক্ষা করার জন্য একটি ব্যাকস্ল্যাশ ব্যবহার করে এবং এটি একটি ধারাবাহিক রেখা তৈরি করে, এটি নিম্নরূপ লেখা যেতে পারে

প্রতিটি লাইনকে ” বা “” দিয়ে আবদ্ধ করুন এবং বাক্যের শেষে একটি নতুন লাইন অক্ষর ←n যোগ করুন।

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

নতুন লাইনের সাথে স্ট্রিংগুলির একটি তালিকা সংযুক্ত করুন

স্ট্রিং পদ্ধতি join() স্ট্রিংগুলির একটি তালিকাকে একটি একক স্ট্রিংয়ে সংযুক্ত করতে ব্যবহার করা যেতে পারে।

যখন join() একটি নতুন লাইন অক্ষর থেকে কল করা হয়, প্রতিটি স্ট্রিং উপাদান একটি নতুন লাইনের সাথে সংযুক্ত হয়।

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()

স্ট্রিং পদ্ধতি splitlines() নতুন লাইনের একটি তালিকায় একটি স্ট্রিং বিভক্ত করতে ব্যবহার করা যেতে পারে।

splitlines() নিম্নলিখিত লাইন বিরতি কোড বিভক্ত করবে। উল্লম্ব ট্যাব এবং পৃষ্ঠা বিরতিগুলিও বিভক্ত।

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

লাইন ফিড কোডগুলি সরান এবং প্রতিস্থাপন করুন

স্প্লিটলাইন() এবং join() একত্রিত করে, নতুন লাইন সম্বলিত স্ট্রিং থেকে নিউলাইন কোডগুলিকে অপসারণ (মুছে ফেলা) বা অন্য স্ট্রিংগুলির সাথে প্রতিস্থাপন করা সম্ভব।

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'

উপরে উল্লিখিত হিসাবে, স্প্লিটলাইন() যেকোনও নতুন লাইন কোডকে বিভক্ত করবে, তাই স্প্লিটলাইন() এবং join() এর সমন্বয় পদ্ধতির ক্ষেত্রে নতুন লাইন কোড সম্পর্কে বিশেষভাবে উদ্বিগ্ন হওয়ার দরকার নেই।

যদি নিউলাইন কোডটি পরিষ্কার হয়, তবে এটি পরিবর্তন() পদ্ধতি দ্বারা প্রতিস্থাপিত হতে পারে, যা স্ট্রিংকে প্রতিস্থাপন করে।

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” রয়েছে। উপরে বর্ণিত স্প্লিটলাইন() এবং join() একত্রিত করার পদ্ধতিটি নিরাপদ কারণ লাইন ফিড কোড সম্পর্কে চিন্তা করার দরকার নেই।

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

যাইহোক, আপনি যদি আউটপুটের জন্য স্ট্রিংগুলিকে সংযুক্ত করতে চান, তাহলে print() এর শেষ আর্গুমেন্টে উল্লেখ করার চেয়ে মূল স্ট্রিংগুলিকে সংযুক্ত করা সহজ। নিম্নলিখিত নিবন্ধ দেখুন.