Төменде Python-да жаңа жолдар бар жолдардың жұмысы сипатталған.
- Жаңа жолдарды қамтитын жолды жасаңыз, басып шығару шығысы (дисплей)
- жаңа жол таңбасы (жүйеге байланысты 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
#
Кодтағы жаңа жолдарды елемеу және оны жалғастыру жолына айналдыру үшін кері қиғаш сызықты пайдалану арқылы оны келесідей жазуға болады.
Әрбір жолды » немесе «» таңбасымен қоршап, сөйлемнің соңына жаңа жол ←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() біріктіретін әдіс жағдайында жаңа жол кодтары туралы ерекше алаңдаудың қажеті жоқ.
Жаңа жол коды анық болса, оны жолды ауыстыратын replace() әдісімен де ауыстыруға болады.
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() функциясы әдепкі бойынша кейінгі жаңа жолды қосады. Сондықтан, егер print() ретімен орындалса, әрбір шығыс нәтижесі жаңа жолда көрсетіледі.
print('a')
print('b')
print('c')
# a
# b
# c
Себебі соңына қосылатын жолды көрсететін print() end аргументінің әдепкі мәні жаңа жол символы болып табылады.
Соңында жаңа жолды қаламасаңыз, аргументтің соңын бос жолға орнатыңыз, сонда нәтиже соңында жаңа жолсыз шығарылады.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
Аргументтің соңы кез келген жол болуы мүмкін.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
Дегенмен, шығару үшін жолдарды біріктіргіңіз келсе, оларды print() соңғы аргументінде көрсетуден гөрі бастапқы жолдарды біріктіру оңайырақ. Келесі мақаланы қараңыз.