Python에서 줄 바꿈 구분 기호를 사용하여 문자열 분할


101

새 줄이있는 문자열을 구분해야합니다. 어떻게해야합니까? 아래 코드를 참조하십시오.

입력:

data = """a,b,c
d,e,f
g,h,i
j,k,l"""

원하는 출력 :

['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

아래 접근 방식을 시도했습니다.

1. output = data.split('\n')
2. output = data.split('/n')
3. output = data.rstrip().split('\n')

1
의 출력은 repr(data)무엇입니까?
Ashwini Chaudhary 2014

답변:


187

str.splitlines 방법은 당신에게 정확히 그것을 줄 것입니다.

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

6
한 가지 편리한 부분은 str.splitlines존재하는 \n경우 최종판을 제거한다는 것입니다 . 즉, 'foo\nbar\n'.split() == ['foo', 'bar', '']동안str.splitlines('foo\nbar\n') == ['foo', 'bar']
Matthew Moisen

10
data = """a,b,c
d,e,f
g,h,i
j,k,l"""

print(data.split())       # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

str.split, 기본적으로 모든 공백 문자로 분할됩니다. 실제 문자열에 다른 공백 문자가있는 경우 다음을 사용할 수 있습니다.

print(data.split("\n"))   # ['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

또는 @Ashwini Chaudhary가 의견에서 제안했듯이 다음을 사용할 수 있습니다.

print(data.splitlines())

더 안전한 측면에서 사용하기 .splitlines위해 문자열에 공백 등이 있으면
어떨까요?

@AshwiniChaudhary Yup, 그것이 내가 제안한 이유 split("\n")입니다. 인가 splitlines보다 .split("\n")?
thefourtheye 2014

4
그것은을 위해 작동 할 \r\n뿐만 아니라 라인 경계의 다른 유형입니다.
Ashwini Chaudhary 2014

당신의 문자열이 끝나는 경우 \n, splitlines()동안을 무시합니다 split("\n")추가 빈 문자열있을 것이다 ""결과의 끝을.
Moberg 2016

10

개행으로 만 분할 하려면 splitlines () 를 사용하는 것이 좋습니다 .

예:

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

split () 사용하면 다음과 같이 작동합니다.

>>> data = """a,b,c
... d,e,f
... g,h,i
... j,k,l"""
>>> data
'a,b,c\nd,e,f\ng,h,i\nj,k,l'
>>> data.split()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

하나:

>>> data = """
... a, eqw, qwe
... v, ewr, err
... """
>>> data
'\na, eqw, qwe\nv, ewr, err\n'
>>> data.split()
['a,', 'eqw,', 'qwe', 'v,', 'ewr,', 'err']

캐릭터를 넘겨 줄 필요가 없다는 게 이상해 보입니다 data.split('\n').

7

이 목적을 위해 특별히 방법이 있습니다.

data.splitlines()
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']

4

여기 있습니다 :

>>> data = """a,b,c
d,e,f
g,h,i
j,k,l"""
>>> data.split()  # split automatically splits through \n and space
['a,b,c', 'd,e,f', 'g,h,i', 'j,k,l']
>>> 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.