Вывесці, злучыць, падзяліць, выдаліць і замяніць радкі, якія змяшчаюць новыя радкі ў Python

Бізнэс

Ніжэй апісваецца аперацыя радкоў, якія змяшчаюць новыя радкі ў Python.

  • Стварыць радок, які змяшчае новы радок, раздрукаваць (дысплей)
    • сімвал новага радка (або абодва з CR і LF у залежнасці ад сістэмы)\n(НЧ),\r\n(CR+LF)
    • патройная цытата'',"""
    • Калі вы хочаце зрабіць водступ
  • Канкатэнацыя спісу радкоў з новымі радкамі
  • Разбіць радок на новыя радкі і спіс:splitlines()
  • Выдаліце ​​і заменіце коды пераводу радкоў
  • Вывад на друк без заканчэння новага радка

Стварыць радок, які змяшчае новы радок, вывесці на друк

сімвал новага радка (або абодва з CR і LF у залежнасці ад сістэмы)\n(НЧ),\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(НЧ)
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'

Можна замяніць некалькі кодаў новага радка, паўтараючы replace(), але гэта не будзе працаваць, калі парадак няправільны, таму што «\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

Гэта адбываецца таму, што значэннем па змаўчанні аргументу end print(), які вызначае радок, які будзе дададзены ў канцы, з’яўляецца сімвал новага радка.

Калі вы не хочаце, каб у канцы быў новы радок, проста ўсталюйце ў канец аргумента пусты радок, і вынік будзе выведзены без пераводу радка ў канцы.

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

Канец аргументу можа быць любой радком.

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

Аднак, калі вы хочаце аб’яднаць радкі для вываду, лягчэй злучыць зыходныя радкі, чым пазначыць іх у канчатковым аргументе print(). Глядзіце наступны артыкул.

Copied title and URL