Nxjerrja, bashkimi, ndarja, fshirja dhe zëvendësimi i vargjeve që përmbajnë linja të reja në Python

biznes

Më poshtë përshkruan funksionimin e vargjeve që përmbajnë linja të reja në Python.

  • Krijo varg që përmban linja të reja, printim (shfaq)
    • karakteri i linjës së re (njëri ose të dy i CR dhe LF në varësi të sistemit)\n(LF),\r\n(CR+LF)
    • citat i trefishtë'',"""
    • Nëse dëshironi të bëni dhëmbëzim
  • Lidhni një listë të vargjeve me vija të reja
  • Ndani vargun në rreshta të rinj dhe listë:splitlines()
  • Hiqni dhe zëvendësoni kodet e furnizimit të linjës
  • Printo rezultat pa rresht të ri

Krijoni varg që përmban linja të reja, printoni rezultatin

karakteri i linjës së re (njëri ose të dy i CR dhe LF në varësi të sistemit)\n(LF),\r\n(CR+LF)

Futja e një kodi të furnizimit të linjës brenda një vargu do të rezultojë në një rresht të ri.

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

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

Kodet e furnizimit të linjës mund të përdoren në mënyrat e mëposhtme. Disa redaktorë ju lejojnë të zgjidhni një kod të ndërprerjes së linjës.

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

citat i trefishtë'',"""

Nëse përdoren thonjëza të trefishta për të mbyllur vargun, ai do të jetë një varg siç është, duke përfshirë linjat e reja.

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

Nëse dëshironi të bëni dhëmbëzim

Thomat e trefishta janë gjithashtu hapësira në një varg, kështu që nëse përpiqeni të shkruani saktë në kod dhe dhëmbëzim siç tregohet më poshtë, do të futen hapësira të panevojshme.

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

Duke përdorur një vijë të prapme për të injoruar linjat e reja në kod dhe për ta bërë atë një rresht vijues, ai mund të shkruhet si më poshtë

Mblidhni çdo rresht me ” ose “” dhe shtoni një karakter të linjës së re ←n në fund të fjalisë.

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

Këtu, sintaksa është se literalet e njëpasnjëshme të vargjeve janë të lidhura. Shihni artikullin e mëposhtëm për detaje.

Nëse dëshironi të shtoni dhëmbëzim në një varg, thjesht shtoni një hapësirë ​​në vargun në çdo rresht.

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

Përveç kësaj, meqenëse ndërprerjet e rreshtave mund të bëhen lirisht në kllapa, sa vijon mund të shkruhet duke përdorur kllapa në vend të vijave të prapme.

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

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

Nëse thjesht dëshironi të rreshtoni fillimin e një rreshti, thjesht shtoni një vijë të prapme në rreshtin e parë të thonjëzave të trefishta.

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

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

Lidhni një listë të vargjeve me vija të reja

Metoda e vargut join() mund të përdoret për të lidhur një listë vargjesh në një varg të vetëm.

Kur join() thirret nga një karakter i linjës së re, çdo element vargu lidhet me një linjë të re.

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'

Si në shembullin e mësipërm, funksioni i integruar repr() mund të përdoret për të kontrolluar vargjet që përmbajnë kode të linjës së re ashtu siç janë.

Ndani vargun në rreshta të rinj dhe listë:splitlines()

Metoda e vargut splitlines() mund të përdoret për të ndarë një varg në një listë rreshtash të reja.

splitlines() do të ndajë cilindo nga kodet e mëposhtme të ndërprerjes së linjës. Skedat vertikale dhe ndërprerjet e faqeve janë gjithashtu të ndara.

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

Hiqni dhe zëvendësoni kodet e furnizimit të linjës

Duke kombinuar splitlines() dhe join(), është e mundur që të hiqen (hiqni) kodet e linjës së re nga një varg që përmban linja të reja ose t’i zëvendësoni ato me vargje të tjera.

s = 'Line1\nLine2\r\nLine3'

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

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

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

Ndryshimi në grup i kodeve të furnizimit të linjës është gjithashtu i mundur. Edhe nëse kodet e ndërprerjes së linjës janë të përziera ose të panjohura, ato mund të ndahen duke përdorur splitlines() dhe më pas të bashkohen me kodin e dëshiruar të ndërprerjes së linjës.

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

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

Siç u përmend më lart, splitlines() do të ndajë cilindo kod të linjës së re, kështu që nuk ka nevojë të shqetësoheni veçanërisht për kodet e linjës së re në rastin e metodës që kombinon splitlines () dhe join().

Nëse kodi i linjës së re është i qartë, ai gjithashtu mund të zëvendësohet me metodën e zëvendësimit (), e cila zëvendëson vargun.

s = 'Line1\nLine2\nLine3'

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

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

Vini re, megjithatë, se nuk do të funksionojë nëse përmban kode të ndryshme të furnizimit të linjës nga sa pritej.

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'

Është e mundur të zëvendësohen kode të shumta të linjës së re duke përsëritur zëvendësimin(), por nuk do të funksionojë nëse renditja është e gabuar sepse “\r\n” përmban “\n”. Metoda që kombinon splitlines() dhe join() e përshkruar më sipër është më e sigurt sepse nuk ka nevojë të shqetësoheni për kodet e furnizimit të linjës.

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

Përdorni metodën rstrip() për të hequr kodet e furnizimit të linjës në fund të një fjalie. rstrip() është një metodë për të hequr karakteret e hapësirës së bardhë (duke përfshirë furnizimet e rreshtave) në skajin e djathtë të një vargu.

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

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

Printo rezultat pa rresht të ri

Funksioni print() shton një linjë të re pasardhëse si parazgjedhje. Prandaj, nëse print() ekzekutohet me radhë, çdo rezultat i daljes do të shfaqet në një linjë të re.

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

Kjo ndodh sepse vlera e paracaktuar e argumentit end of print(), i cili specifikon vargun që do të shtohet në fund, është simboli i linjës së re.

Nëse nuk dëshironi një linjë të re në fund, thjesht vendosni fundin e argumentit në një varg bosh dhe dalja do të dalë pa një linjë të re në fund.

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

Fundi i argumentit mund të jetë çdo varg.

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

Megjithatë, nëse doni të lidhni vargjet për dalje, është më e lehtë të lidhni vargjet origjinale sesa t’i specifikoni në argumentin fundor të print(). Shihni artikullin e mëposhtëm.

Copied title and URL