පයිතන් හි නව රේඛා අඩංගු නූල් වල ක්රියාකාරිත්වය පහත විස්තර කෙරේ.
- නව රේඛා අඩංගු තන්තුව සාදන්න, ප්රතිදානය මුද්රණය කරන්න (දර්ශණය)
- නව රේඛා අක්ෂරය (පද්ධතිය මත පදනම්ව CR සහ LF දෙකම හෝ දෙකම)
\n
(LF),\r\n
(CR+LF) - ත්රිත්ව උපුටා දැක්වීම
''
,"""
- ඔබට ඉන්ඩෙන්ට් කිරීමට අවශ්ය නම්
- නව රේඛා අක්ෂරය (පද්ධතිය මත පදනම්ව CR සහ LF දෙකම හෝ දෙකම)
- නව රේඛා සමඟ නූල් ලැයිස්තුවක් ඒකාබද්ධ කරන්න
- තන්තුව නව රේඛා සහ ලැයිස්තුවට බෙදන්න:
splitlines()
- රේඛා සංග්රහ කේත ඉවත් කර ප්රතිස්ථාපනය කරන්න
- නව රේඛාව පසුපස හඹා නොගොස් ප්රතිදානය මුද්රණය කරන්න
නව රේඛා අඩංගු තන්තුව සාදන්න, ප්රතිදානය මුද්රණය කරන්න
නව රේඛා අක්ෂරය (පද්ධතිය මත පදනම්ව CR සහ LF දෙකම හෝ දෙකම)\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
#
කේතයේ නව රේඛා නොසලකා හැරීමට සහ එය අඛණ්ඩ රේඛාවක් බවට පත් කිරීමට backslash භාවිතා කිරීමෙන්, එය පහත පරිදි ලිවිය හැක.
සෑම පේළියක්ම ” හෝ “” සමඟින් කොට වාක්යයේ අවසානයේ නව රේඛා අක්ෂරයක් ←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']
රේඛා සංග්රහ කේත ඉවත් කර ප්රතිස්ථාපනය කරන්න
splitlines() සහ 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
රේඛීය සංග්රහ කේත කාණ්ඩ වෙනස් කිරීම ද කළ හැකිය. රේඛා බිඳීමේ කේත මිශ්ර හෝ නොදන්නා වුවද, ඒවා splitlines() භාවිතයෙන් බෙදිය හැකි අතර පසුව අවශ්ය රේඛා බිඳීමේ කේතය සමඟ සංයුක්ත කළ හැක.
s_n = '\n'.join(s.splitlines())
print(s_n)
# Line1
# Line2
# Line3
print(repr(s_n))
# 'Line1\nLine2\nLine3'
ඉහත සඳහන් කළ පරිදි, splitlines() විසින් නව රේඛා කේතයක් බෙදනු ඇත, එබැවින් splitlines() සහ 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” අඩංගු බැවින් අනුපිළිවෙල වැරදි නම් එය ක්රියා නොකරයි. රේඛීය සංග්රහ කේත ගැන කරදර විය යුතු නැති නිසා ඉහත විස්තර කර ඇති splitlines() සහ 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() හි තර්ක අන්තයේ පෙරනිමි අගය නව රේඛා සංකේතය වන බැවිනි.
ඔබට අවසානයේ නව රේඛාවක් අවශ්ය නැතිනම්, තර්කයේ අවසානය හිස් තන්තුවකට සකසන්න, එවිට ප්රතිදානය අවසානයේ නව රේඛාවක් නොමැතිව ප්රතිදානය වනු ඇත.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
තර්ක අවසානය ඕනෑම තන්තුවක් විය හැක.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
කෙසේ වෙතත්, ඔබට ප්රතිදානය සඳහා නූල් සම්බන්ධ කිරීමට අවශ්ය නම්, මුද්රණ () හි අවසාන තර්කයේ ඒවා සඳහන් කිරීමට වඩා මුල් තන්තු සම්බන්ධ කිරීම පහසුය. පහත ලිපිය බලන්න.