다음은 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'
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
마지막에 추가할 문자열을 지정하는 print()의 end 인수의 기본값이 개행 기호이기 때문입니다.
끝에 줄 바꿈을 원하지 않는 경우 인수 end를 빈 문자열로 설정하면 끝 부분에 줄 바꿈 없이 출력이 출력됩니다.
print('a', end='')
print('b', end='')
print('c', end='')
# abc
인수 end는 임의의 문자열이 될 수 있습니다.
print('a', end='-')
print('b', end='-')
print('c')
# a-b-c
그러나 출력을 위해 문자열을 연결하려면 print()의 end 인수에서 지정하는 것보다 원래 문자열을 연결하는 것이 더 쉽습니다. 다음 기사를 참조하십시오.